Two pointers的题目就是要搞清楚两个指针的状态,保存的值,何时更新,何时移动等。
这种从后往前复制值的题目一定要保持住一个tail,剩下的就可以酌情考虑
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
class (object): def removeDuplicates(self, nums): """ :type nums: List[int] :rtype: int """ if len(nums) <= 2: return len(nums) cur = 2 tail = 2 while cur <= tail and tail < len(nums): nums[cur] = nums[tail] if nums[cur] == nums[cur-1] and nums[cur] == nums[cur-2]: tail += 1 else: cur += 1 tail += 1 return cur
|
近期评论