首页 > 其他分享 >26. 删除有序数组中的重复项

26. 删除有序数组中的重复项

时间:2023-08-03 21:48:04浏览次数:41  
标签:26 删除 nums int 元素 数组

26. 删除有序数组中的重复项

![image-20230803210215410](D:\BaiduSyncdisk\C++\笔记图片\26. 删除有序数组中的重复项1.png)

题目:

给你一个 升序排列的数组 nums ,请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度。元素的相对顺序应该保持 一致。然后返回 nums 中唯一元素的个数。

考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通过:

●更改数组 nums ,使 nums 的前 k 个元素包含唯一元素,并按照它们最初在 nums 中出现的顺序排列。nums 的其余元素与 nums 的大小不重要。
●返回 k 。

提示:取要的数

答案1(极客时间):

class Solution 
{
public:
    int removeDuplicates(vector<int>& nums) 
    {
        int n = 0;
        for(int i = 0; i < nums.size(); i++)
        {
            if(i == 0 ||nums[i] != nums[i-1])
            {
                nums[n] = nums[i];
                n++;
            }
        }
        return n;
    }
};

答案2(官方):

class Solution 
{
public:
    int removeDuplicates(vector<int>& nums)
    {
        int n=nums.size();
        if(n==0)
        {
            return 0;
        }
        int fast=1,slow=1;
        while(fast<n)
        {
            if(nums[fast]!=nums[fast-1])
            {
                nums[slow]=nums[fast];
                ++slow;
            }
            ++fast;
        }
        return slow;
    }
};

标签:26,删除,nums,int,元素,数组
From: https://www.cnblogs.com/codemagiciant/p/17604539.html

相关文章

  • 剑指 Offer 04. 二维数组中的查找(中等)
    题目:classSolution{public:boolfindNumberIn2DArray(vector<vector<int>>&matrix,inttarget){inti=matrix.size()-1,j=0;//以矩阵最左下角作为标记符号while(i>=0&&j<matrix[0].size()){i......
  • P4826 [USACO15FEB] Superbull S题解
    SuperbullS题解题目传送门(可点击)题面题目描述\(Bessie\)和她的朋友们正在一年一度的\(Superbull\)锦标赛中打球,而\(Farmer\)\(John\)负责让比赛尽可能激动人心。总共有N支队伍(\(1\leN\le2000\))参加了\(Superbull\)锦标赛。每个团队都有一个\(1...2^{30}−1\)的团队ID......
  • Confluence OGNL表达式注入命令执行漏洞(CVE-2022-26134)
    ConfluenceOGNL表达式注入命令执行漏洞(CVE-2022-26134)简介AtlassianConfluence是企业广泛使用的wiki系统。2022年6月2日Atlassian官方发布了一则安全更新,通告了一个严重且已在野利用的代码执行漏洞,攻击者利用这个漏洞即可无需任何条件在Confluence中执行任意命令。受影响版本......
  • shell 读取文件内容到数组
     在shell脚本中,可以使用下面的语法来读取文件内容并将其存储到数组中: bash复制代码array=()whilereadline;doarray+=("$line")done<file.txtLOG_INFO(){localcontent=${1}echo-e"\033[32m[INFO]${content}\033[0m"}IFS=''catbanner.......
  • shell 将文件内容读取到 数组中
    #!/bin/bashprod_file=/home/vmuser/linbo/kettleDemo/job/test/CA-20201224.csvtest_file=/home/vmuser/linbo/kettleDemo/job/test/uat_CA-20201224.csvdtm=`date+"%Y%m%d%H%M%S"`echo$dtmrowCnt=`cat$test_file|wc-l`echo$rowCntecho"-----......
  • 剑指 Offer 11. 旋转数组的最小数字(简单)
    题目:classSolution{public:intminArray(vector<int>&numbers){intresult=numbers[0];//当旋转0个元素时第一个元素就是最小值if(numbers.size()==1)returnresult;for(inti=1;i<numbers.size();i++){//通过观......
  • 数组双指针技巧汇总 [labuladong-刷题打卡 day2]
    https://labuladong.github.io/algo/challenge/ji-chu-tiao-zhan/day02/快慢指针26.删除有序数组中的重复项两个指针分别维护符合条件数组和待删除数组,当快指针移动时将符合条件元素插入已完成数组后即可。通过这两天对双指针的练习,可以发现很多双指针算法其实也是一种迭代算......
  • 前缀和数组技巧 [labuladong-刷题打卡 day3]
    今天是两道前缀和,主要有一维前缀和和二维前缀和,当然扩充到高维也是可以的,只不过状态转移会相对复杂些。这里直接贴一个动态规划的介绍吧:动态规划要素动态规划概念、特点、经典例题和于其它算法思想的比较前缀和其实是备忘录自底向上动态规划算法的一个典型例子,状态转移方程:一......
  • 树状数组
    log(n)修改,log(n)查询可以顶替掉一部分线段树的作用,而且码量十分友好但是对我来说是有点难理解的,现在只是大体理解,没有很通透,所以不写自己的理解了,以后要多看看1.单点修改区间查询https://blog.csdn.net/ls2868916989/article/details/119268741代码(P3374):#include<iostream>#i......
  • Git删除分支
    本文说白了,就是给自己看的!查看分支gitbranch-a 列出当前仓库的所有分支gitbranch 列出当前仓库的所有本地分支gitbranch-r 列出当前仓库的所有远程分支gitbranch-v 列出当前仓库的所有本地分支的名称,并显示每个分支最后一次提交的SHA-1校验和和提交信......