取消网站验证码,漳州网站建设到博大,高端品牌型网站建设,自己做个网站需要些什么Powered by:NEFU AB-IN
Link 文章目录 80. 删除有序数组中的重复项 II题意思路代码 80. 删除有序数组中的重复项 II 题意 给你一个有序数组 nums #xff0c;请你 原地 删除重复出现的元素#xff0c;使得出现次数超过两次的元素只出现两次 #xff0c;返回删除后数组的新长…Powered by:NEFU AB-IN
Link 文章目录 80. 删除有序数组中的重复项 II题意思路代码 80. 删除有序数组中的重复项 II 题意 给你一个有序数组 nums 请你 原地 删除重复出现的元素使得出现次数超过两次的元素只出现两次 返回删除后数组的新长度。 不要使用额外的数组空间你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 思路 设定两个指针 left指针指向能被留下的元素的下一个地方因为前两个元素必须被留下所以left初始指向2另一个指针往前指看看这个数能否留下依据就是看看这个数和left之前的两个元素是否相等不相等的话才保留 代码 #define int long long
#undef int#define SZ(X) ((int)(X).size())class Solution {
public:int removeDuplicates(vectorint nums) {if(SZ(nums) 2) return SZ(nums);int l 2;for(int i 2; i SZ(nums); i){if(nums[i] ! nums[l - 1] || nums[i] ! nums[l - 2]){nums[l ] nums[i];}}return l;}
};