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

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

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;
    }
};
相关推荐
长安er20 分钟前
LeetCode 206/92/25 链表翻转问题-“盒子-标签-纸条模型”
java·数据结构·算法·leetcode·链表·链表翻转
Benmao⁢25 分钟前
C语言期末复习笔记
c语言·开发语言·笔记·leetcode·面试·蓝桥杯
唯道行1 小时前
计算机图形学·23 Weiler-Athenton多边形裁剪算法
算法·计算机视觉·几何学·计算机图形学·opengl
CoderYanger1 小时前
动态规划算法-01背包问题:50.分割等和子集
java·算法·leetcode·动态规划·1024程序员节
花月C1 小时前
个性化推荐:基于用户的协同过滤算法
开发语言·后端·算法·近邻算法
lxh01131 小时前
最长递增子序列
前端·数据结构·算法
Youyzq2 小时前
前端项目发布到cdn上css被编译失效问题rgba失效和rgb失效
前端·css·算法·cdn
风筝在晴天搁浅2 小时前
代码随想录 516.最长回文子序列
算法
菜鸟233号2 小时前
力扣513 找树左下角的值 java实现
java·数据结构·算法·leetcode
亭上秋和景清2 小时前
指针进阶:函数指针详解
开发语言·c++·算法