上一页 1 2 3 4 5 6 7 8 9 10 ··· 19 下一页
摘要: "144. 二叉树的前序遍历" 递归写法 非递归写法 阅读全文
posted @ 2018-08-07 22:27 ACBingo 阅读(417) 评论(0) 推荐(0) 编辑
摘要: "94. 二叉树的中序遍历" 中序遍历 递归写法 非递归写法 阅读全文
posted @ 2018-08-07 22:22 ACBingo 阅读(324) 评论(0) 推荐(0) 编辑
摘要: "93. 复原IP地址" 这题其实就是 "91. 解码方法" 的一个变型。解法完全一样。 dfs(int k, int p, String s, Stack cur, List ans),k表示当前状态下剩余可以搜的个数,p表示还需要搜几个数,cur是个栈,表示当前已经搜到的数 注意下约束关系,去处 阅读全文
posted @ 2018-08-06 21:33 ACBingo 阅读(541) 评论(0) 推荐(0) 编辑
摘要: "206. 反转链表" 做 "92. 反转链表 II" 就顺手把这个做了 阅读全文
posted @ 2018-08-06 00:36 ACBingo 阅读(132) 评论(0) 推荐(0) 编辑
摘要: "92. 反转链表 II" 把一个链表部分反转,这个是我经常爱出的面试题,今天终于轮到我做了 我们在 "25. k个一组翻转链表" 中处理过类似的问题,那个更难,要求 k 个节点一组进行翻转。这个题相对起来就简单多了,我们可以直接利用那个题的reverse函数.反转一下就可以了。 为了方便,我们有个 阅读全文
posted @ 2018-08-06 00:35 ACBingo 阅读(453) 评论(0) 推荐(0) 编辑
摘要: "91. 解码方法" 递归+回溯 枚举 枚举方法只有两种,选当前一个数,还是选取两个数( 1) { if (s.charAt(s.length() k) == '1') { dfs(k 2, s); } else if (s.charAt(s.length() k) == '2' && s.char 阅读全文
posted @ 2018-08-06 00:01 ACBingo 阅读(305) 评论(0) 推荐(0) 编辑
摘要: "90. 子集 II" "78. 子集" 题的扩展,其中的元素可能会出现重复了 我们仍沿用78题的代码,稍作改动即可: 1. 此时需要对nums先排个序,方便我们后面跳过选取相同的子集。 2. 跳过选取相同的子集。当选取完第i个数时,如果后面的数,和当前数相同,就跳过,不必对其进行递归了。 clas 阅读全文
posted @ 2018-08-05 23:12 ACBingo 阅读(117) 评论(0) 推荐(0) 编辑
摘要: "89. 格雷编码" 这个题挺有意思,意思就是让你生成2^n个数,但是相邻的两数之间的二进制编码只能有一处不同,比如100 与 101,但是100,110就不行 多写几个数就找到规律了,比如当n=3时: 0 1 11 10 110 111 101 100 观察发现,第5个数其实就是第4个数在前面加了 阅读全文
posted @ 2018-08-05 22:35 ACBingo 阅读(546) 评论(0) 推荐(0) 编辑
摘要: "88. 合并两个有序数组" 水题,没有在原数组上做,偷了个懒 class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { int[] ans = new int[m + n]; int i = 0, j 阅读全文
posted @ 2018-08-02 22:54 ACBingo 阅读(132) 评论(0) 推荐(0) 编辑
摘要: "87. 扰乱字符串" 没有任何思路 直接google别人的题解,大致看懂了吧 简单的说,就是s1和s2是scramble的话,那么必然存在一个在s1上的长度l1,将s1分成s11和s12两段,同样有s21和s22.那么要么s11和s21是scramble的并且s12和s22是scramble的;要 阅读全文
posted @ 2018-08-02 22:38 ACBingo 阅读(397) 评论(0) 推荐(0) 编辑
摘要: "86. 分隔链表" 这个题是让你把比x小的节点都挪到大于等于x节点前面去,注意还要保证每个节点的初始位置。 那么我们可以先找到第一个 =x的节点p,然后p后面的所有节点,都插入到p之前即可 我的代码写复杂了= = 阅读全文
posted @ 2018-08-01 23:18 ACBingo 阅读(198) 评论(0) 推荐(0) 编辑
摘要: "221. 最大正方形" 其实这题是 "85. 最大矩形" 的特殊情况,我们将85题代码稍微改一下,然后直接套用即可。 此题要求是正方形,那么我们在计算长与宽时,取短的那条然后平方即可。 另外,这个题可以用dp来做。思路还是很巧妙的。 dp[i,j]表示以(i,j)为右下角的矩阵的面积,那么状态转移 阅读全文
posted @ 2018-08-01 21:54 ACBingo 阅读(163) 评论(0) 推荐(0) 编辑
摘要: "85. 最大矩形" 解法1: 一个思路就是这个可以看作 "84. 柱状图中最大的矩形" 的扩展,这道题的二维矩阵每一层向上都可以看做一个直方图,输入矩阵有多少行,就可以形成多少个直方图,对每个直方图都调用 "84. 柱状图中最大的矩形" 中的方法,就可以得到最大的矩形面积。 解法2: 另外一个思路 阅读全文
posted @ 2018-07-31 23:52 ACBingo 阅读(312) 评论(0) 推荐(0) 编辑
摘要: "84. 柱状图中最大的矩形" 用到了单调栈的知识,还是第一次碰到。学习了好久 看这两篇文章吧: "直方图中最大的矩形" "单调栈小结" 简单来说,维护一个单调栈,如果当前元素大于栈顶元素,则把当前元素的坐标入栈,否则,弹出栈顶元素直到当前元素可入栈。 在栈顶元素弹出时,把弹出的元素当成最短木板,计 阅读全文
posted @ 2018-07-30 22:21 ACBingo 阅读(766) 评论(0) 推荐(0) 编辑
摘要: "82. 删除排序链表中的重复元素 II" 83题的扩展,相比于83题。我们增加一个last_last来记录重复元素前面的节点即可 阅读全文
posted @ 2018-07-30 17:06 ACBingo 阅读(223) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 19 下一页