package main.java.simple;
/**
- https://leetcode.cn/problems/remove-duplicates-from-sorted-array-ii/description/?envType=study-plan-v2&envId=top-interview-150
- <p>
- 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。
- <p>
- 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
*/
class RemoveDuplicates2 {
public static int removeDuplicates(int[] nums) {
int left = 0;
int right = 0;
int tag = 0;
while (right < nums.length) {
if (nums[right] != nums[left]) {
left = right;
}
if (right - left < 2 || nums[right] != nums[left]) {
nums[tag] = nums[left];
tag++;
}
right++;
}
return tag;
}
public static void main(String[] args) {
System.out.println(removeDuplicates(new int[]{1, 1, 1, 2, 2, 3}));
System.out.println(removeDuplicates(new int[]{1}));
System.out.println(removeDuplicates(new int[]{2, 3, 4}));
}
}
网友评论