力扣刷题——26. 删除有序数组中的重复项
26. 删除有序数组中的重复项
双指针
快慢指针i和j,i指针前的元素都不重复,j指针往后找不重复的元素,不重复的元素放到i指针的下一个位置
package leetcode;
public class T26 {
public static void main(String[] args) {
new T26().new Solution().removeDuplicates(new int[] {1, 2});
}
class Solution {
public int removeDuplicates(int[] nums) {
int k = nums.length;
int i = 0, j = 0;//快慢指针
for (j = 0; j < k; ++j) {
if (nums[j] != nums[i]) {
if (i + 1 < k) {
nums[i + 1] = nums[j];
i++;
}
}
}
return nums.length == 0 ? 0 : i + 1;//返回的是数组长度,要考虑数组长度为0的情况
}
}
}
posted on 2023-02-26 23:29 pumpkinsBig 阅读(16) 评论(0) 收藏 举报
浙公网安备 33010602011771号