LeetCode每日一题,80. Remove Duplicates from Sorted Array II
先看题目描述
算法和思路
双指针
这题可以使用两个指针 i 和 j,其中 i 是慢指针,j 是快指针。慢指针表示处理出的数组长度,快指针表示已检查过的数组长度
由于题目要求相同元素最多重复两次,因此将 nums[j] 与 nums[i - 2] 进行比较
- 若 nums[j] 与 nums[i - 2] 相等,那么说明 nums[i - 2] == nums[i - 1] == nums[j],出现三个重复元素,将 j 跳过,j++
- 否则,说明 nums[j] 可以被保留,令nums[i] = nums[j],j++,i++
最后 i 的值就是处理后的数组长度
算法源码
双指针
1 | class Solution { |