😶🌫️😶🌫️😶🌫️😶🌫️Take your time ! 😶🌫️😶🌫️😶🌫️😶🌫️
💥个人主页:🔥🔥🔥大魔王🔥🔥🔥
💥所属专栏:🔥魔王的修炼之路–数据结构🔥
如果你觉得这篇文章对你有帮助,请在文章结尾处留下你的点赞👍和关注💖,支持一下博主。同时记得收藏✨这篇文章,方便以后重新阅读。
这道题和上面那题很相似,不能开辟额外空间,解法也很相似,也要使用双指针,题上说了给的是升序数组,所以我们的思路可以是这样的:同时创建两个指针,让一个先走,然后看它和第二个指针指向的值是否相等,如果不相等,同时都指向下一个元素,如果相等,就只让这个指针指向下一个元素,第二个指针不动。和上一个原理也是一样的:就是在这个数组中覆盖了不符合要求了(重复的数字)。代码如下:
int removeDuplicates(int* nums, int numsSize){
int dst = 0;
int src = 1;
while(src<numsSize)
{
if(nums[dst]==nums[src])
{
src++;
}
else
{
dst++;
nums[dst] = nums[src];
src++;
}
}
return dst+1;
}
🌈专栏推荐
😈魔王的修炼之路–C语言
😈魔王的修炼之路–数据结构初阶
😈魔王的修炼之路–C++
😈魔王的修炼之路–Linux
更新不易,希望得到友友的三连支持一波。收藏这篇文章,意味着你将永久拥有它,无论何时何地,都可以立即找到重新阅读;关注博主,意味着无论何时何地,博主将永久和你一起学习进步,为你带来有价值的内容。