删除有序数组中的重复项-力扣

本题的解题思路同样是使用快慢指针对数组进行操作,代码如下:

cpp 复制代码
class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        int fastindex = 1;
        int slowindex = 0;

        for(fastindex; fastindex < nums.size(); fastindex++){
            if(nums[fastindex] != nums[slowindex]){
                nums[++slowindex] = nums[fastindex];           
            }
        }
        return slowindex + 1;
    }
};
  • 最开始尝试用下列条件进行判断,总是出现越界并且数组中覆盖的数的位置出现问题,继而提交失败。
  • 应当是后出现的数与前一个数进行判断,如果相等,则用后一个来覆盖前一个
cpp 复制代码
nums[fastindex] != nums[fastindex + 1]

需要对 for 循环判断条件进行修改:

cpp 复制代码
fastindex < nums.size() 修改为 fastindex < nums.size() - 1
cpp 复制代码
class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        int fastindex = 0;
        int slowindex = 0;

        for(fastindex; fastindex < nums.size() - 1; fastindex++){
            if(nums[fastindex] != nums[fastindex + 1]){
                nums[++slowindex] = nums[fastindex + 1];           
            }
        }
        return slowindex + 1;
    }
};
相关推荐
散峰而望13 分钟前
C++ 启程:从历史到实战,揭开命名空间的神秘面纱
c语言·开发语言·数据结构·c++·算法·github·visual studio
Ethan Hunt丶1 小时前
MSVTNet: 基于多尺度视觉Transformer的运动想象EEG分类模型
人工智能·深度学习·算法·transformer·脑机接口
仟濹1 小时前
【算法打卡day10(2026-02-24 周二)复习算法:DFS BFS 并查集】
算法·深度优先·图论·dfs·bfs·广度优先·宽度优先
-海绵东东-1 小时前
哈希表······················
算法·leetcode·散列表
Darkwanderor1 小时前
数据结构 - 并查集的应用
数据结构·c++·并查集
LuDvei1 小时前
LINUX文件操作函数
java·linux·算法
XW01059992 小时前
4-11判断素数
前端·python·算法·素数
浅念-2 小时前
C++ 继承
开发语言·c++·经验分享·笔记·学习·算法·继承
算法备案代理2 小时前
深度合成算法备案:生成式AI需要备案吗?
人工智能·算法·算法备案
菜鸡儿齐2 小时前
leetcode-全排列
算法·leetcode·深度优先