08 2018 档案
摘要:最近在维护的一个比较旧的项目,发现总是隔一段时间JDBC就报错: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot get a connectio
阅读全文
摘要:"95. 不同的二叉搜索树 II" "96. 不同的二叉搜索树" 的扩展,现在要求把生成的算出来 这种建树问题一般来说都是用递归来解,这道题也不例外,划分左右子树,递归构造。 和我们之前dfs稍微有点不一样了,这次需要返回值了 class Solution { public List generat
阅读全文
摘要:"96. 不同的二叉搜索树" 这道题实际上是 Catalan Number卡塔兰数的一个例子。 就跟斐波那契数列一样,我们把n = 0 时赋为1,因为空树也算一种二叉搜索树,那么n = 1时的情况可以看做是其左子树个数乘以右子树的个数,左右字数都是空树,所以1乘1还是1。那么n = 2时,由于1和2
阅读全文
摘要:"98. 验证二叉搜索树" 一个二叉搜索树的中序遍历肯定是个有序的数组。所以一个比较直接的做法就是,我们得到其中序遍历,然后看起数组是否递增即可 略微优化一点呢,就是边中序遍历,边判断
阅读全文
摘要:"145. 二叉树的后序遍历" 递归写法 非递归写法 还是比较难的,要保证根结点在左孩子和右孩子访问之后才能访问,因此对于任一结点P,先将其入栈。如果P不存在左孩子和右孩子,则可以直接访问它;或者P存在左孩子或者右孩子,但是其左孩子和右孩子都已被访问过了,则同样可以直接访问该结点。若非上述两种情况,
阅读全文
摘要:"144. 二叉树的前序遍历" 递归写法 非递归写法
阅读全文
摘要:"94. 二叉树的中序遍历" 中序遍历 递归写法 非递归写法
阅读全文
摘要:"93. 复原IP地址" 这题其实就是 "91. 解码方法" 的一个变型。解法完全一样。 dfs(int k, int p, String s, Stack cur, List ans),k表示当前状态下剩余可以搜的个数,p表示还需要搜几个数,cur是个栈,表示当前已经搜到的数 注意下约束关系,去处
阅读全文
摘要:"206. 反转链表" 做 "92. 反转链表 II" 就顺手把这个做了
阅读全文
摘要:"92. 反转链表 II" 把一个链表部分反转,这个是我经常爱出的面试题,今天终于轮到我做了 我们在 "25. k个一组翻转链表" 中处理过类似的问题,那个更难,要求 k 个节点一组进行翻转。这个题相对起来就简单多了,我们可以直接利用那个题的reverse函数.反转一下就可以了。 为了方便,我们有个
阅读全文
摘要:"91. 解码方法" 递归+回溯 枚举 枚举方法只有两种,选当前一个数,还是选取两个数( 1) { if (s.charAt(s.length() k) == '1') { dfs(k 2, s); } else if (s.charAt(s.length() k) == '2' && s.char
阅读全文
摘要:"90. 子集 II" "78. 子集" 题的扩展,其中的元素可能会出现重复了 我们仍沿用78题的代码,稍作改动即可: 1. 此时需要对nums先排个序,方便我们后面跳过选取相同的子集。 2. 跳过选取相同的子集。当选取完第i个数时,如果后面的数,和当前数相同,就跳过,不必对其进行递归了。 clas
阅读全文
摘要:"89. 格雷编码" 这个题挺有意思,意思就是让你生成2^n个数,但是相邻的两数之间的二进制编码只能有一处不同,比如100 与 101,但是100,110就不行 多写几个数就找到规律了,比如当n=3时: 0 1 11 10 110 111 101 100 观察发现,第5个数其实就是第4个数在前面加了
阅读全文
摘要:"88. 合并两个有序数组" 水题,没有在原数组上做,偷了个懒 class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { int[] ans = new int[m + n]; int i = 0, j
阅读全文
摘要:"87. 扰乱字符串" 没有任何思路 直接google别人的题解,大致看懂了吧 简单的说,就是s1和s2是scramble的话,那么必然存在一个在s1上的长度l1,将s1分成s11和s12两段,同样有s21和s22.那么要么s11和s21是scramble的并且s12和s22是scramble的;要
阅读全文
摘要:"86. 分隔链表" 这个题是让你把比x小的节点都挪到大于等于x节点前面去,注意还要保证每个节点的初始位置。 那么我们可以先找到第一个 =x的节点p,然后p后面的所有节点,都插入到p之前即可 我的代码写复杂了= =
阅读全文
摘要:"221. 最大正方形" 其实这题是 "85. 最大矩形" 的特殊情况,我们将85题代码稍微改一下,然后直接套用即可。 此题要求是正方形,那么我们在计算长与宽时,取短的那条然后平方即可。 另外,这个题可以用dp来做。思路还是很巧妙的。 dp[i,j]表示以(i,j)为右下角的矩阵的面积,那么状态转移
阅读全文

浙公网安备 33010602011771号