每日一题——删除有序数组中的重复项

简介: 每日一题——删除有序数组中的重复项

删除有序数组中的重复项

题目链接


注:本题所采用的方法是建立在移除元素的基础之上的,如果大家对双指针的方法不大了解,或者不会做《移除元素》这一题,建议先去看看👉传送门

具体步骤

  • 定义两个指针slowfastslow指向数组的第一个元素,fast指向数组的第二个元素
  • fast开始向后遍历数组,如果其值等于slow所指向的元素,那么则说明出现重复元素,fast继续向后移动
  • 如果fast所指向的元素不等于slow的,那么进行操作[++slow] = [fast++],即先让slow向后移动一位再进行赋值操作,接着fast继续后移
  • 直到fast遍历完整个数组

如图所示:


实现代码

int removeDuplicates(int* nums, int numsSize){
    int slow = 0;
    int fast = 1;
    while(fast < numsSize)
    {
        //相等就不赋值,fast继续遍历
        if(nums[fast] == nums[slow])
            fast++;
        //不相等就赋值
        else
            nums[++slow] = nums[fast++];
    }
    //返回新数组大小
    return slow + 1;
}
相关文章
|
11天前
|
索引
leetcode题解:26.删除有序数组重复项
leetcode题解:26.删除有序数组重复项
7 0
|
2月前
|
算法
LeetCode | 26. 删除有序数组中的重复项
LeetCode | 26. 删除有序数组中的重复项
【每日一题】2.LeetCode——删除有序数组中的重复项
【每日一题】2.LeetCode——删除有序数组中的重复项
|
11月前
|
存储 算法 C语言
LeetCode每日一题26. 删除有序数组中的重复项
给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。
66 0
|
2月前
|
存储 算法 索引
LeetCode热题 80. 删除有序数组中的重复项 II
LeetCode热题 80. 删除有序数组中的重复项 II
29 0
|
2月前
|
C++
LeetCode 26. 删除有序数组中的重复项
LeetCode 26. 删除有序数组中的重复项
25 0
|
8月前
26.删除有序数组中的重复项(LeetCode)
26.删除有序数组中的重复项(LeetCode)
|
8月前
|
JavaScript 前端开发 C语言
leetcode每日一题 2021/4/6 80. 删除有序数组中的重复项 II
leetcode每日一题 2021/4/6 80. 删除有序数组中的重复项 II
37 0
|
算法 安全 Swift
LeetCode - #26 删除有序数组中的重复项
不积跬步,无以至千里;不积小流,无以成江海,Swift社区 伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。
【leetCode26】删除有序数组中的重复项
【leetCode26】删除有序数组中的重复项