
Two Pointers
joycetlm
这个作者很懒,什么都没留下…
展开
-
Two Pointers
两根指针问题,分为两类:同向指针、相向指针,时间复杂度均为O(n)(一)Move Zeroes (同向指针)https://leetcode.com/problems/move-zeroes/description/题目:将数组中所有0元素移动到数组最右边,非零元素顺序不变;解答:用快慢两指针。快指针每次向前挪一位,若遇到不为0的数,则将快慢指针位置交换并将慢指针挪一位(依次遍原创 2018-01-21 09:29:24 · 340 阅读 · 0 评论 -
Partition
(一) Sort Colors题目:一个无序数组仅仅含有0,1,2三种元素,要求按照0,1,2的顺序排列;解答:调用两次快速选择的方法;代码:class Solution { public void sortColors(int[] nums) { quickSelect(nums, 0); quickSelect(nums, 1);原创 2018-01-21 11:28:43 · 207 阅读 · 0 评论 -
Two Sum
(一)Two Sumhttps://leetcode.com/problems/two-sum/description/题目:对一个无重复元素的无序数组,找到满足两个数和为target的组合并返回两数下标(该数组必定且只存在一个满足条件的组合,且一个元素不可使用两次);解答:法一:HashMap:将 nums[index] 和 index 作为key, value值存入hash原创 2018-01-22 07:04:52 · 134 阅读 · 0 评论