2023每日刷题(十)
Leetcode—80.删除有序数组中的重复项II
双指针实现代码
int removeDuplicates(int* nums, int numsSize){int i = 0;int j = 1;int k = 1;int tmp = nums[i];while(j < numsSize) {if(nums[j] == tmp && k < 2) {nums[++i] = nums[j];k++;j++;} else if(nums[j] != tmp) {tmp = nums[j];nums[++i] = nums[j];k = 1;j++;} else {j++;}}return i + 1;
}
运行结果
朴素法实现代码
int removeDuplicates(int* nums, int numsSize){if(numsSize == 1 || numsSize == 2) {return numsSize;}int k = 2;int i = 0;for(i = 2; i < numsSize; i++) {if(!(nums[k - 2] == nums[k - 1] && nums[i] == nums[k - 1])) {nums[k] = nums[i];k++;}}return k;
}
运行结果
之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!