two pointers
文章平均质量分 57
bsbcarter
这个作者很懒,什么都没留下…
展开
-
*LeetCode-Minimum Size Subarray Sum
用两个指针的方法 一个在前面先累计到》=sum 然后记录一下长度 然后试着把后看那个缩短 看是否能得到更短的注意里层while要先给length赋值public class Solution { public int minSubArrayLen(int s, int[] nums) { int minLen = Integer.MAX_VALUE;原创 2015-09-29 05:27:43 · 274 阅读 · 0 评论 -
*LeetCode-Sort List
linked list简直了 two pointer的事情还需要联系这次忘记每次要判断head是否null 或者就一个node 先返回然后就是找到中间 break开 然后分别sort这两个 再mergemerge不需要新空间!!一个新的head 两个指针分别指向两个sublist的头 一个一个比 然后挪动指针就行了!!然后最后把剩下的加上去 记得dummy的事情public cla原创 2015-10-01 03:34:40 · 275 阅读 · 0 评论 -
*LeetCode-Reorder List
这个题分三步 但是每一步都很多细节 第一步找到中间 第二步把后半部分reverse 第三步将这两部分按顺序链接注意第一部分第二部分break开 然后注意后面的head一开始设置成null 再翻转然后就是连接的时候 注意停止条件public class Solution { public void reorderList(ListNode head) { if原创 2015-10-01 04:03:18 · 240 阅读 · 0 评论 -
LeetCode-Shortest Word Distance II
因为需要多次call 所以就存成hashmap 存position list关键是找min的时候 实际上就是给两个list 找其中数字最小difference 方法就是每次更新那个小的 让他变大 去靠近大的 ( 因为list是sorted 从小到大)移动数字比较小的那个的指针public class WordDistance { HashMap> map = new HashM原创 2015-10-22 02:26:20 · 525 阅读 · 0 评论 -
LeetCode-3Sum Smaller
每次外层循环固定住一个数字, 然后剩下两个使用two pointer方法 每次初始化成头和尾 然后根据大小挪动一次public class Solution { public int threeSumSmaller(int[] nums, int target) { if ( nums == null || nums.length < 3 ) r原创 2015-10-22 01:43:17 · 663 阅读 · 0 评论 -
*LeetCode-Trapping Rain Water
感觉很难想到 两个指针从两边 两边也都keep一个max 每次只挪动一个 根据当前那个低 就挪动那个 为了两个指针相遇的时候不会有冲突 而且相遇的时候也是低的一边决定水位然后被挪动的一边判断当前高度和这边max的值 假如更高了 就update max, 否则就填一部分 填的是当前高度这个unit的上面和相应这边max之间的水public class Solution { publi原创 2015-09-22 06:52:08 · 243 阅读 · 0 评论 -
*LeetCode-4Sum
o(n^3)固定一个数字 然后就变成3sum 再固定一个就是2sum但是注意处理duplicate 就是四个数字都要避免dup 处理了四个地方public class Solution { public List> fourSum(int[] nums, int target) { List> res = new ArrayList> (); i原创 2015-10-26 07:55:19 · 311 阅读 · 0 评论 -
**LeetCode-Substring with Concatenation of All Words
首先记录一个map 数字典里面的word 每个出现几遍, 然后对于string 扫3遍 (假如word length是3)每次有一个offset开始这样就能保证把每个情况错开的word都包含全判断是否涵盖了dict里面所有词并且使用频率也对 是通过另一个map的每个词个数不可以超dict的map 并且总count等于dict里面词的个数然后每次记录一个start 开始每个词假如另一个m原创 2015-11-25 07:39:10 · 344 阅读 · 0 评论 -
**LeetCode-Minimum Window Substring
这种题都是hashmap加two pointers思想 但是移动start pointer的rules不一样 以及判断是否包含了所有的字母找到了答案的方法也不太一样这个题也是先统计总共需要哪些字母 需要多少个 然后开始扫同样是要找到有效count等于需要的总count之后表示找到了答案 然后这个题的start指针记得要挪动到下一个valid字母处public class Solutio原创 2015-11-26 01:59:39 · 310 阅读 · 0 评论