数据结构与算法
1.01的n次方
这个作者很懒,什么都没留下…
展开
-
含有环的单链表的入环口求解
今天做到了这个题目,重温了下左神的方法,同时也和师兄讨论了下,为什么在第二次相遇时,就是其入环口。求解入环口的方法:快慢指针法(左神)步骤:设置两个指针一个快指针quick,一个慢指针slow(快指针一次走两步,慢指针一次走一步,如果他们能相遇则说明有环)相遇后,快指针重新回到头结点head,之后,两个结点一起前进,均一次走一步,再次相遇处则为入环口。代码public stati...原创 2019-04-19 23:14:49 · 133 阅读 · 0 评论 -
约瑟夫环 (输出每次删除数字,Java)
最近发现,约瑟夫环的笔试出镜率还挺高,总结一个时间复杂度为O(n),空间复杂度为O(n)的解法:例题:0,1,2,·······,n-1,这n个数字排成一个圆圈,从0开始,每次删除第m个数字,输出每一次删除的数字。代码如下:使用一个ArrayList类型变量list存储n个数字,定义一个变量k,每次求k = (k+m-1) % n 的值,之后输出list.remove(k),删除一个数后数...原创 2019-05-16 10:29:39 · 650 阅读 · 0 评论 -
链表部分翻转(从第m个至第n个, Java实现)
给定一个单链表,要求输出从第n到第m个位置翻转后的链表。思路:使用头插法:例如,已知链表如图:定义三个指针:cur, curNext, curPre对这三个节点进行如下操作:curNext = cur.next;cur.next = curNext.next;curNext.next = curPre.next;curPre.next = curNext;经过该操作之后:...原创 2019-06-09 20:12:11 · 1844 阅读 · 0 评论 -
01背包问题及优化(动态规划 java实现)
问题描述:现有一个容量为VVV的背包,以及nnn件物品,其分别占据的容量为cic_ici ,其分别带来的价值为wiw_iwi,(i=1,2,...,ni={1,2,...,n}i=1,2,...,n)要求:这nnn件物品只能放入背包0次或1次(即,不放入或者放入)问:背包的最大价值为多少?使用动态规划进行求解:子问题定义状态:dp[i][j]dp[i][j]dp[i][j]表示 前...原创 2019-06-10 15:35:37 · 1621 阅读 · 4 评论 -
LeetCode590. N叉树的后序遍历(Java实现)
题目描述: 给定N叉树,输出其后序遍历序列。给定的N叉树节点类为:class Node { public int val; public List<Node> children; public Node() {} public Node(int _val,List<Node> _children) { val = _v...原创 2019-09-25 11:40:00 · 351 阅读 · 0 评论 -
LeetCode717.1比特与2比特字符(Java实现)
题目描述: 现有两种字符,第一种字符是1比特的可以用0表示,第二种字符是2比特的可以用10或11表示。现给出一个若干比特组成的字符串,问是否最后一位为1比特字符?如:给定 字符串 [1,1,1,0,0] 会返回 true, 11100可以分为11,10,0,给定 字符串 [1,1,1,0] 会返回 false,1110可以分为11,10,最后一位不是1比特字符。解题思路: 对于 字符串,如...原创 2019-09-25 15:15:57 · 179 阅读 · 0 评论 -
LeetCode59. 螺旋矩阵2 (Java实现)
题目描述: 给定一个数nnn,生成一个以1~n2n^2n2的二维数组,数组中的元素按照顺时针旋转方式依次排放。如:给定数字n=3n=3n=3,生成的矩阵为:解题思路: 这个顺时针循环旋转的方式,其实就是每次从左至右放入元素,在从上至下放入最后一列元素, 之后,从右至左放入最后一行元素,再从下至上放入第一列元素,依次循环。...原创 2019-09-29 20:06:23 · 237 阅读 · 0 评论