C语言LeetCode题解26Remove Duplicates from Sorted Array
C 语言刷题的第 26 题,有序数组去重,逻辑清晰,代码短小精悍,蛮适合练手的。用双指针的方法,把重复项原地移除,空间复杂度直接拉满压缩。嗯,思路不难,就是边界判断那块要注意一下,新手挺容易在这卡壳。
有序数组里的重复值,直接用两个指针搞定:一个读指针遍历,一个写指针负责记录新位置。像下面这种写法:
int removeDuplicates(int* nums, int numsSize) {
if (numsSize == 0) return 0;
int i = 0;
for (int j = 1; j < numsSize xss=removed xss=removed>
你看,核心其实就是判断nums[j] != nums[i]
,更新前面的数组内容。不创建新数组,省空间,运行效率也还不错。
如果你刚入门 LeetCode 的 C 语言题,这道题挺推荐先练熟,打基础的好选择。你也可以顺带看看这几篇相关文章,像PHP 数组去重、算法课件实训这种,扩展一下思路也挺不错。
699B
文件大小:
评论区