摘要:
暴力破解 1 public String longestCommonPrefix(String[] strs) { 2 if(strs == null || strs.length == 0) { 3 return ""; 4 } 5 int min = minLen(strs); 6 int cn 阅读全文
摘要:
用two pointers夹逼的方法,刚开始把left和right设置在数组的两端,如果left处比right处矮,那么说明left处是瓶颈,否则就是right处是。 同时维护一个全局的maxArea 1 public int maxArea(int[] height) { 2 if(height 阅读全文
摘要:
更新: 之前那种dp太笨重了有个非常的轻巧的做法,原理都是一样的。 转移方程不变,但是不需要特别的初始化 判断某个格子是不是true,是 1.要么长度小于3,要么dp[start+1][end-1]==true 2.并且s.charAt(start) == s.charAt(end) 判断要不要更新 阅读全文
摘要:
Two pointers 配合 HashSet 相当于控制一个小窗,如果下一个字母是新的字母,那小窗就往右移一格,同时检查一下是不是最大长度,如果下一个字母是有重复的,那么就让小窗的左侧往右移动到第一个不是该字母的地方。 需要注意的是,小窗左侧移动的时候,小窗右侧也要往右边移动一次,不然下一轮检查的 阅读全文
摘要:
没什么特别的。不在原链表上操作,把每一位保存到一个新的链表里面。 程序大概分四段: 1. 当l1和l2都不为空的时候 2. 当l1不为空的时候 3. 当l2不为空的时候 4. 当carry!=0的时候,再建一个新的节点放在末尾 public ListNode addTwoNumbers(ListNo 阅读全文