
两根指针
sjphiChina
代码是最为耐心、最能忍耐和最令人愉快的伙伴,在任何艰难困苦的时刻,它都不会抛弃你。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Partition Array
这道题用两根指针,向中间逼近。一定要注意的是corner case时的下标处理。/** *@param nums: The integer array you should partition *@param k: As description *return: The index after partition */ public int原创 2016-05-29 18:26:28 · 419 阅读 · 0 评论 -
Summary Ranges
要和Missing Ranges联动。public class Solution { public List summaryRanges(int[] nums) { List result = new LinkedList<>(); int length = nums.length; for (int i = 0; i < length;原创 2016-06-23 11:20:48 · 299 阅读 · 0 评论 -
Odd Even Linked List
两根指针/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */public class Solution { public ListNod原创 2016-07-26 14:41:31 · 322 阅读 · 0 评论 -
Two Sum II - Input array is sorted
这道题固然用两根指针能做,自己之后还要想一下二叉做法,候着吧。public class Solution { public int[] twoSum(int[] numbers, int target) { int [] result = new int[2]; if (numbers == null || numbers.length < 2) {原创 2016-06-15 16:15:44 · 303 阅读 · 0 评论 -
Longest Palindromic Substring
参考点击打开链接关键是第一个for循环,找到每个字符串的中心位置,然后以此中心位置向两边出发,public class Solution { public String longestPalindrome(String s) { if (s == null || s.length() == 0) { return ""; }原创 2016-06-15 14:38:40 · 252 阅读 · 0 评论 -
Largest Rectangle in Histogram
单调栈,课上的知识今天终于用上了,不过好像就用上这三个字了,哈哈哈哈。很赞的参考:点击打开链接仔细我们犯得错误!stack里保存的是位置index,高度得用heights[stack.peek()]来得到。public class Solution { public int largestRectangleArea(int[] heights) { if (heigh原创 2016-07-01 08:05:43 · 311 阅读 · 0 评论 -
Remove Duplicates from Sorted Array II
请和点击打开链接联动,多刷,这是基本功public class Solution { public int removeDuplicates(int[] A) { if (A.length < 3) { return A.length; } int prev = 1, cur = 2; while (cur < A.lengt原创 2016-06-14 06:55:10 · 261 阅读 · 0 评论 -
Minimum Size Subarray Sum
这道双指针问题,要反复常做。public class Solution { public int minSubArrayLen(int s, int[] nums) { // int j = 0, i = 0; // int sum =0; // int ans = Integer.MAX_VALUE;原创 2016-06-13 16:08:38 · 297 阅读 · 0 评论 -
Reverse Vowels of a String
典型的两根指针,对于当中的指针变换,我们需要好好总结一下。public class Solution { Set set; private Set getSet() { if (set == null) { set = new HashSet<>(); set.add('a');原创 2016-06-06 04:15:11 · 272 阅读 · 0 评论 -
Sort Colors
暴力的办法就是普通数组排序,但此题有其特殊性,即只有3个不同的数字,0,1,2,对此排序想法就是遇到0,就都放到最前面,遇到2,就都放到最后面,遇到1,就pass。但必须要注意的是对于遇到2,index i不能++前进,因为这个换来的数字可能是0 或是1,必须再次排序,但由于有了p2--,所以并不会死循环。/** * @param nums: A list of integ原创 2016-05-29 11:42:07 · 265 阅读 · 0 评论 -
Reverse String
连坐标的自增减都能忘写了,我们还是睡吧。。。public class Solution { public String reverseString(String s) { if (s == null || s.length() < 2) { return s; } char[] cArray = s.toCharA原创 2016-06-09 14:02:31 · 272 阅读 · 0 评论 -
Move Zeroes
此题让自己做的很痛苦,本来一道leetcode上的easy题,当用两个指针求解时,却反复提交了n遍。我想说,这个充分暴露的就是我们的基本功问题。public class Solution { public void moveZeroes(int[] nums) { int p0 = 0, p1 = 0; while (p0 < nu原创 2016-06-02 11:59:53 · 358 阅读 · 0 评论 -
Remove Duplicates from Sorted Array
又一道。。。。。。。我们和两年前比。。。。。。。public int removeDuplicates(int[] nums) { if (nums == null) { return 0; } if (nums.length <= 1) { return nums.length;原创 2016-06-02 23:23:04 · 322 阅读 · 0 评论 -
3Sum Smaller
这题是允许重复的数字的,因为只要保证下标满足i, j, k with 0 就好。所以不需要开始的去重!再有,这种求小于某值或是大于某值的,看好了,求数量是坐标的相减public class Solution { public int threeSumSmaller(int[] nums, int target) { if (nums == null || n原创 2016-06-23 15:56:32 · 313 阅读 · 0 评论