leetcode_80删除有序数组中的重复项 II

1. 题意

删除有序数组中的重复元素,同一元素不能超过两次。

2. 题解

leetcode26. 删除有序数组中的重复项的升级版本,只需要考虑 n u m s [ l e n − 2 ] ≠ n u m s [ j ] nums[len -2] \ne nums[j] nums[len−2]=nums[j]即可, l e n len len是排列好的有序数组长度, j j j遍历完整个数组。

  • 通解 k = 2 k=2 k=2
cpp 复制代码
class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        
        int sz = nums.size();
        int j = 0;
        for (int num: nums) {
            if ( j < 2 || nums[j - 2] != num){
                nums[j] = num;
                j++;
            }
        }

        return j;
    }
};
  • 模拟
cpp 复制代码
class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        int sz = nums.size();
        int i = 0;
        int j = 1;
        int len = 0;
        if (sz <= 2)
            return sz;

        for (int j = 1;j < sz; j++) {
            if (nums[i] != nums[j]) {
                nums[len++] = nums[i];

                if (j == sz - 1) {
                    nums[len++] = nums[j];
                }
                i++;
            }
            else {
                nums[len] = nums[i];
                nums[len + 1] =nums[i];
                len += 2;
                j++;
                while (j < sz && nums[j] == nums[i])
                    j++;
                if (j + 1 < sz) {
                    i = j;
                }
                else if (j < sz) {
                    nums[len++] = nums[j];
                }
            }
        }
       


        return len;
    }
};
相关推荐
月明长歌8 分钟前
【码道初阶】【Leetcode94&144&145】二叉树的前中后序遍历(非递归版):显式调用栈的优雅实现
java·数据结构·windows·算法·leetcode·二叉树
DanyHope24 分钟前
《LeetCode 49. 字母异位词分组:哈希表 + 排序 全解析》
算法·leetcode·哈希算法·散列表
iAkuya27 分钟前
(leetcode) 力扣100 15轮转数组(环状替代)
数据结构·算法·leetcode
杰克尼29 分钟前
蓝桥云课-5. 花灯调整【算法赛】
java·开发语言·算法
.小墨迹29 分钟前
C++学习之std::move 的用法与优缺点分析
linux·开发语言·c++·学习·算法·ubuntu
wanghowie30 分钟前
01.02 Java基础篇|核心数据结构速查
java·开发语言·数据结构
努力学算法的蒟蒻37 分钟前
day38(12.19)——leetcode面试经典150
算法·leetcode·面试
搬砖魁首1 小时前
ZK-ALU-在有限域上实现乘法和除法
算法·zk·alu·域运算·算术逻辑单元·模乘·蒙哥马利模约简
iAkuya1 小时前
(leetcode)力扣100 17缺失的第一个正数(哈希)
算法·leetcode·哈希算法
断剑zou天涯1 小时前
【算法笔记】树状数组IndexTree
java·笔记·算法