算法
decaywood
这个作者很懒,什么都没留下…
展开
-
[leetcode] - 329. Longest Increasing Path in a Matrix
这道题目的意思是在一个矩阵中寻找递增的最长路径长度。一开始一直在纠结用set保存走过的点,然后进行递归深度搜索,结果一直超时。后面发现这是深坑,立马改变思路,用动态规划辅助后瞬间秒杀。代码如下: public int longestIncreasingPath(int[][] matrix) { if(matrix.length == 0) return 0; int原创 2016-01-26 19:58:07 · 426 阅读 · 0 评论 -
[leetcode] - 328. Odd Even Linked List
题意是要将所有序号为奇数的节点全部放在链表前面,序号为偶数的连在最后一个奇数节点后面,并且不能打乱顺序。主要序号定义为从节点头顺序编号,不是指节点的值。这道题略坑,本想着可以直接ac的,代码也比较优雅, 结果发现leetcode这道题对空间的要求极高,如果你不马上把用完的空间释放掉,分分钟叫你重写。未ac版本:public ListNode oddEvenList(ListNode head) {原创 2016-01-26 21:18:59 · 872 阅读 · 0 评论 -
[lintcode] - 391 Number of Airplanes in the Sky
easy难度的题,基本上是不允许错的,也必须10分钟内做出来。 思路很简单,递归至最深处将结果保存即可。/** * @author: decaywood * @date: 2016/1/27 9:30 * * Given a binary tree, return all root-to-leaf paths. * * Example * Given the following原创 2016-01-27 09:53:17 · 509 阅读 · 0 评论 -
[lintcode] - 426 Restore IP Addresses
这道题意思大概就是给一串数字,把它所有合法的IP地址列出来,并且不care排列顺序。事实上这道题有个坑,如果你的答案的顺序与testcase的不一致照样报错。结题思路应该很容易想到,递归回溯就行了,每次选择当前掩码的数字位数,位数不合法的忽略,合法的跳到下一段掩码继续递归即可,递归最深处保留结果。注意判断递归停止条件。/** * @author: decaywood * @date: 2016/原创 2016-01-27 10:45:55 · 452 阅读 · 0 评论 -
[leetcode] - 326. Power of Three
判断n是否为3的幂 public boolean isPowerOfThree(int n) { return n >= 1 && (1162261467 % n == 0); }其中,1162261467为int型中最大的3的幂原创 2016-01-29 11:05:31 · 318 阅读 · 0 评论 -
[leetcode] - 324. Wiggle Sort II
题意大致为将给定数组中的元素按形如nums[0] < nums[1] > nums[2] < nums[3]….这种样子排列,顺序没要求。这道题O(1)时间复杂度和空间复杂度的最优解暂时没想出来,用蠢办法解决。方案为先复制当前数组,将复制的数组排序,然后以中位数为界将数组分为两部分,small part和large part。交替填入原始数组即可,这样做的原因是可以避免有值相同的数组挨在一起,以符合原创 2016-01-29 13:40:50 · 2332 阅读 · 0 评论