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

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

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;
    }
};
相关推荐
从零点1 天前
插补算法(逐点比较法)+PWM配置操作
算法
DARLING Zero two♡1 天前
【优选算法】LinkedList-Concatenate:链表的算法之契
数据结构·c++·算法·链表
Moonbit1 天前
MoonBit Pearls Vol.14:哈希表避坑指南
后端·算法·编程语言
杰克尼1 天前
120. 三角形最小路径和
算法
树在风中摇曳1 天前
C语言动态内存管理:从基础到进阶的完整解析
c语言·开发语言·算法
mjhcsp1 天前
C++ 高精度计算:突破数据类型限制的实现与应用
开发语言·c++·算法·高精度
大袁同学1 天前
【二叉搜索树】:程序的“决策树”,排序数据的基石
数据结构·c++·算法·决策树·stl
蓝色汪洋1 天前
xtu oj环--唉
算法
Algo-hx1 天前
数据结构入门 (十):“左小右大”的秩序 —— 深入二叉搜索树
数据结构·算法
努力学算法的蒟蒻1 天前
day11(11.11)——leetcode面试经典150
算法·leetcode·面试