数据结构与算法
张三爻
沉淀
展开
-
Python的一条正则匹配上万条数据(filter的使用)
今天要做一个使用一条正则表达式从上万条数据中快速匹配满足条件的记录兜兜转转,发现了python的filter,该函数运行速度快,匹配性能良好 ,具体使用方法如下:enc_regx = re.compile(sin_regx,re.UNICODE) #sin_regx为正则表达式newslist=[x for x in question_list if re.search(enc_regx,str(x))] #question_list为需要匹配字符的list ,注意x需要使用str转义 不然可原创 2020-05-17 23:04:41 · 1437 阅读 · 1 评论 -
Leetcode刷题———————杨辉三角(递归公式的实现、List的按地址传值)
刷Leetcode的递归题目,题目为:给定一个非负整数numRows,生成杨辉三角的前numRows行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]]本题的解题关键要推出递归实现的公式,在此地不再赘述。具...原创 2020-04-08 00:29:50 · 274 阅读 · 0 评论 -
Leetcode刷题——— 两两交换链表中的节点(JAVA的按值传递、链表递归)
在Leecode 练习递归时,遇到以下题目:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。要注意不能只交换结点的值,而是要交换结点,交换结点的值则实现更加容易。输出示例为:给定 1->2->3->4, 你应该返回 2->1->4->3.试着实现代码: ...原创 2020-04-07 00:11:08 · 206 阅读 · 0 评论 -
Leetcode刷题-----反转字符串(递归、原地反转)
开始了刷leetcode题目之旅,首先刷关于递归的题目,因为自我感觉对递归的使用不熟悉刷到一个 反转字符串 的题目,就论反转字符串来说,使用非递归实现是非常容易的,不过使用递归来实现则需注意一些小细节。遇到以下问题,需注意:首先原地修改数组,需要不借助辅助数组,在原数组进行修改 char数组的初始化题目如下:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组...原创 2020-04-06 16:33:50 · 1546 阅读 · 0 评论 -
对"宁波大学OJ系统240题"中的部分ACM题的解析和算法实现
断断续续利用大概一个月的时间完成了<宁波大学OJ系统240题.pdf>中的部分题目其中只选择了一些认为比较有价值的题目进行解析和实现需要的可自取,里面的题目大部分是基础题,适合新手用来打基础有一些实现起来比较复杂的题目都在该CSDN进行解析和代码实现,有任何问题欢迎交流!相关资源:宁波大学OJ系统240题.pdf宁波大学OJ系统240题(解析,链接稍后添加)...原创 2020-03-26 20:08:20 · 743 阅读 · 0 评论 -
【ACM】对称方阵----算法及实现
题目为:将该方阵分为上下两部分:其中上部分的实现代码为: for (int i = 1; i <= n; i++) { s = i; for (int j = 1; j < 2 * n; j++) { if (j <= i) { ...原创 2020-03-25 19:12:00 · 288 阅读 · 0 评论 -
【ACM】折叠方阵--------算法实现
题目为:要求为:不采用递归,思路为从先从上到下,然后从左到右这块找到对应规律,具体的JAVA实现代码为: Scanner scanner = new Scanner(System.in); System.out.println("请输入值:"); int a = scanner.nextInt(); int n=s...原创 2020-03-25 16:08:31 · 763 阅读 · 0 评论 -
【ACM】情人节的百宝箱--使用快速排序的算法实现
题目为:输入为:JAVA实现使用快速排序,然后对每个数进行遍历:快速排序的代码为: public static int partition(double a[] ,int low,int high ){ double pivotpos=a[low]; while(low<high){ while(...原创 2020-03-25 12:34:07 · 788 阅读 · 0 评论 -
【ACM】一维数组元素倒置————数组中指定数据倒置
题目为:思路与草稿为:JAVA的实现代码为: Scanner scanner = new Scanner(System.in); System.out.println("请输入值:"); int n = scanner.nextInt(); int m=scanner.nextInt(); int...原创 2020-03-24 23:15:19 · 881 阅读 · 0 评论 -
【ACM】约瑟夫环问题的算法实现
题目为:本题思路为:使用数组来实现,将所有数组元素初始化为1,每此将报到3的人的值置为0,下一轮便不再加入计数。使用sum进行计数,每次淘汰一人,sum的值便+1,直到sum的值为n-1,便退出循环!JAVA的代码实现为: Scanner scanner = new Scanner(System.in); System.out.println("请输...原创 2020-03-23 22:51:37 · 278 阅读 · 0 评论 -
【ACM】魔方阵的算法与实现
遇见ACM题:给的提示算法为:笔者按照以上算法进行三阶模拟运行,发现不能完全推出魔方阵,有兴趣的可以自己尝试!于是上百度搜索相关内容,如下:参考来源:https://baike.baidu.com/item/%E9%AD%94%E6%96%B9%E9%98%B5/10973743?fr=aladdin#reference-[2]-667337-wrap可见实现方...原创 2020-03-23 18:00:34 · 514 阅读 · 0 评论 -
【ACM】哥德巴赫猜想——偶数形式的算法与分析
JAVA的实现代码为: Scanner scanner = new Scanner(System.in); System.out.println("请输入值:"); int n=scanner.nextInt(); boolean flag=Boolean.TRUE; int[] znum=new int[1...原创 2020-03-23 15:38:11 · 511 阅读 · 0 评论 -
十进制到八进制的转换方法
1.间接法:先将十进制转换成二进制,然后将二进制又转换成八进制 。2.直接法:前面我们讲过,八进制是由二进制衍生而来的,因此我们可以采用与十进制转换为二进制相类似的方法,分为整数部分的转换和小数部分的转换:整数部分方法:除8取余法,即每次将整数部分除以8,余数为该位权上的数,而商继续除以8,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止 最后读数时候,从最后一个余数起,...原创 2020-03-23 14:57:59 · 114656 阅读 · 2 评论 -
HTTP协议安全吗?
它的信息传输全部是以明文方式,不够安全,很容易被人拦截,篡改传输内容。参考来源:https://www.cnblogs.com/whalesea/p/10407996.html原创 2020-03-20 11:50:09 · 1329 阅读 · 0 评论 -
JAVA----输入流Ctrl+z(EOF)结束
输入一些整数,按回车,然后同时按ctrl键和z键,再按回车结束输入Scanner scanner = new Scanner(System.in);JAVA读取EOF主要是靠scanner.hasNext()来判断c语言中的Ctrl+Z 在JAVA中对应的快捷键Ctrl+D ,才能读取EOF流...原创 2020-03-14 20:52:57 · 2095 阅读 · 0 评论 -
大数值:bigInteger---2^64次方
问:如果基本的整数和浮点数精度不能够满足需求,可以使用java.math包中的两个类:BigInteger和BigDecimalBigInteger in=BigInteger.valueOf(2);或者BigInteger in=new BigInteger("2");将in变量的值设为2然后再计算2^64in=in.pow(64);//乘方in=...原创 2020-03-11 18:09:51 · 862 阅读 · 0 评论 -
数据结构与算法-C语言实现单链表,以及单链表的常用方法
C语言知识点提要:Struct:Struct 内可放置各种类型的数据格式为:Struct TagName {.............(元素类型 元素名称)}不同Struct内的成员名称可以相同也可使用以下方法来定义Structstruct {......} x,y,z;上面定义的TagName可用于之后再定义,例如:struct TagName t...原创 2019-06-07 22:57:25 · 217 阅读 · 0 评论