美丽数组的定义:
nums.length
为偶数- 对所有满足
i % 2 == 0
的下标i
,nums[i] != nums[i + 1]
均成立
只有符合定义的元素才能加入最终的数组作为美丽数组
不符合的需要跳过,同时操作数加一
最后判断数组size的奇偶性,如果是奇数的话,操作次数加一,偶数不需要额外操作
双指针法:
public int minDeletion(int[] nums) {
int res = 0;
int left = 0;
int right = 1;
while (right < nums.length) {
if (left % 2 != 0) {
left++;
nums[left] = nums[right];
right++;
} else {
if (nums[left] == nums[right]) {
res++;
right++;
} else {
left++;
nums[left] = nums[right];
right++;
}
}
}
if (left % 2 == 0) {
res++;
}
return res;
}