算法题
文章平均质量分 80
平时积累的算法示例,记录下来和大家共勉
forwardyzk
这个作者很懒,什么都没留下…
展开
-
算法例子:求出数组中所有组合(两个数之和等于指定数)(Java)
这里介绍三种方法方法1思路:双重for循环,每一个数和所有其他的数进行相加,如果等于目标值则打印出时间复杂度 :O(N2)空间复杂度 :O(1)public static void main(String[] args) { int[] nums = new int[]{1, 8, 9, 6, 4, 3, 7}; int target = 10; method1(nums, target); }public static void原创 2020-07-09 23:57:57 · 5588 阅读 · 0 评论 -
算法例子:反转单向链表(Java)
反转单向链表1.思想因为一个链表是一个单向的,如果要反转,肯定是要遍历的,并且使链表是反转.可以在闲的链表中使用头插入法,那么新链表和原链表顺序是逆向的.达到反转效果.反转链表方法:reverseLinkList(Node head)2.创建链表节点public class Node { public int value;//链表的值 public Node next;//下一节点 public Node() { } public Node(int v原创 2020-07-17 23:28:38 · 410 阅读 · 0 评论 -
算法例子:查找字符串中连续不重复最长字符串和长度(Java)
1.思路2.结果字符串:abacbefkb开始遍历:链表的变化情况:a:长度:1 链表:[a]b:长度:2 链表:[a,b]a:长度:2 链表:[b,a]c:长度:3 链表:[b,a,c]b:长度:3 链表:[a,c,b]e:长度:4 链表:[a,c,b,e]f:长度:5 链表:[a,c,b,e,f]k:长度:6 链表:[a,c,b,e,f,k]b:长度:4 链表:[e,f,k,b]遍历结束连续不重复的字符串:acbefk 长度:6这是想到的是使用滑动窗原创 2020-07-18 16:03:51 · 1485 阅读 · 0 评论 -
算法例子:两个大数字符串相加(java)
1.算法例子计算两个数字字符串相加.例如:s1 = “8763845638363774673957584937685934737”;s2 = “763845638363774673957584937685934”;计算s1与s2的和.2.算法设计1.将两个字符串转化成char数组 c1[],c2[].2.定义个存储结果数组,result[];其长度为c1和c2数组长度的最大值+1,因为两个数相加,最大值为长度进一位.3.逆向遍历char两个数组.4.取出值两个值.n[i],n[j].r原创 2020-08-06 21:31:55 · 5619 阅读 · 1 评论 -
算法例子:手动解析Json,按照层级打印(Java)
1.算法例子描述给定一个json字符串{ "a": { "b": { "c": { "d": "h", "j": "l", "o": { "p": "q", "r": "s" }, "t": "u" } }, "v": { "w": { "x": { "y": "z" } } } }, "e": { "f": { "i": "k" }, "m": "n"原创 2020-08-08 11:39:15 · 1240 阅读 · 0 评论 -
算法例子:拆分(按照奇偶位置)双向链表为两个链表(Java)
1.例子描述将一个双向链表,按照奇偶位置进行拆分成两个链表即:1.双向链表中偶数位置的结点组成一个链表.2.双向链表中奇数位置的结点组成一个链表.3.拆分完成后,双向链表变成了空链表.2.实现思路4.打印结果待分割的链表:head->tail:[1,2,3,4,5,6,7,8,9,10]---------存储偶数位置结点的链表----------head->tail:[2,4,6,8,10]tail-->head:[10,8,6,4,2]---------存储奇原创 2020-08-04 20:31:24 · 2329 阅读 · 0 评论