
two-pointer
我要上岸!!!
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Leetcode 1 Two Sum
Leetcode 1 Two Sum思路复杂度分析代码思路使用哈希表,将数组中元素都放到一个hashmap中,然后遍历哈希表确定target-nums[i]是否也在表中【注意:存在的情况下要将自身使用2次的情况去掉】复杂度分析时间复杂度O(n), 空间复杂度O(n)代码class Solution { public int[] twoSum(int[] nums, int ta...原创 2019-02-15 04:54:34 · 142 阅读 · 0 评论 -
LeetCode 27 Remove Elements
思路同向双指针。如果没遇到给定的val,就让nums[index]=nums[i],其中index为指示当前可覆盖位置的指针(慢指针),i为遍历整个数组所用的指针(快指针)。如果遇到了,就只移动i指针,直到遇到的不是val。复杂度时间复杂度O(n), 空间复杂度O(1)代码class Solution { public int removeElement(int[] nums, ...原创 2019-03-15 14:00:38 · 119 阅读 · 0 评论 -
LeetCode 125 Valid Palindrome
思路两个相向的指针left和right,遇到非字母和数字就直接跳过,比较left和right是否相同。注意:(1)left和right有范围限制;(2)如果遇到”…” 类型的字符串,可以在比较left是否到达字符串末端来判断。复杂度时间复杂度O(n)空间复杂度O(1)代码class Solution { public boolean isPalindrome(String...原创 2019-06-23 15:42:22 · 90 阅读 · 0 评论 -
LeetCode 881 Boats to Save People
思路贪心+双指针。将数组排序后,两个指针分别指向最轻的和最重的两个人。如果二者之和超过limit,那么只能让最重的人上船;否则二人可上一艘船。复杂度时间复杂度O(n)空间复杂度O(1)代码class Solution { public int numRescueBoats(int[] people, int limit) { Arrays.sort(people...原创 2019-09-05 15:04:22 · 143 阅读 · 0 评论 -
LintCode 587 Two Sum - Unique pairs
思路1排序+双指针。指针移动的过程中,遇到了相同的元素就直接跳过。时间复杂度O(nlogn)空间复杂度O(1)代码1public class Solution { /** * @param nums: an array of integer * @param target: An integer * @return: An integer ...原创 2019-09-09 10:03:22 · 354 阅读 · 0 评论 -
LintCode 521 Remove Duplicate Numbers in Array
思路1HashSet记录不重复数字,然后从数组开头开始替换成hashset中的元素。时间复杂度O(n)空间复杂度O(n)代码1public class Solution { /** * @param nums an array of integers * @return the number of unique integers */ pub...原创 2019-09-12 10:26:16 · 266 阅读 · 0 评论