leetcode_26删除有序数组中的重复项

1. 题意

给定一个重复数组,删除其中的重复项目。

2. 题解

双指针

一个指针指向有序不重复数组的最后一个数,另外一个数遍历整个数组,若两个指针对应用的数不相同,有序数组的指针右移,将数填入。

  • 代码一
c 复制代码
class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        

        int sz = nums.size();
        int cnt = 0;

        for (int i = 1;i < sz; ++i) {
            if (nums[i] != nums[cnt]) {
                nums[++cnt] = nums[i];
            }
        }
        return cnt + 1;
    }
};
  • 通解
    只要 n u m s l e n − 1 ≠ n u m s j numslen - 1\ne numsj numslen−1=numsj, 就需要将 n u m s j numsj numsj给放入有序数组。推广一下,如果相同的数不超过 k k k个,就只需要 n u m s l e n − k ≠ n u m s j numslen - k \ne numsj numslen−k=numsj
cpp 复制代码
class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        

        int sz = nums.size();
        int cnt = 1;

        for (int i = 1;i < sz; ++i) {
            if (nums[i] != nums[cnt - 1]) {
                nums[cnt++] = nums[i];
            }
        }
        return cnt;
    }
};
相关推荐
天辛大师3 小时前
天心大师:不确定中锚定自我,AI生活的哲学命题
人工智能·算法·决策树·机器学习·生活·启发式算法
皓月斯语4 小时前
B2132 素数对
c++·算法·题解
星轨初途5 小时前
LeetCode 热题 100——day2 字母异位词分组
c++·算法·leetcode
happyprince5 小时前
篇1:整体观 · bitsandbytes项目全貌解读
人工智能·算法
Livia要学习5 小时前
Python2和Python3字典底层原理
数据结构
青梅橘子皮5 小时前
STL---map/set... “家族“详解(从使用到底层)(1)
数据结构·算法
让学习成为一种生活方式5 小时前
DNA 甲基化综述(模式、调控与功能)--Current Opinion in Plant Biology
算法
-森屿安年-6 小时前
647. 回文子串
c++·算法·动态规划
皓月斯语6 小时前
P5736 【深基7.例2】质数筛
c++·算法·题解
极序时代GEO品牌优化7 小时前
杭州极序时代|面向地域、设备与用户画像的动态GEO
人工智能·python·算法·极序时代geo