当前位置: 首页 > article >正文

C语言每日一题(21)删除排序数组中的重复项

力扣 26.删除排序数组中的重复项

题目描述

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

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

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

 

 思路分析

基于双指针法,用下标进行代替,从数组最左端开始,遍历整个数组,下标1如果不等于下标2就把下标1指向的值赋给下标2,同时继续向后遍历完整个数组,最后返回下标2的值(即去重后数组的长度)

整体步骤

1.定义src下标和dest下标,dest从0开始

src从1开始(第一个不需要进行匹配)遍历整个数组,如果nums【src】不等于nums【dest】的就将src指向的值赋给dest(先++在赋值),同时定义一个计数器++(从1开始),最后返回count的值。

完整代码

int removeDuplicates(int* nums, int numsSize){

    int src=0;

    int dest=0;

    int count=1;

    for(src=1;src<numsSize;src++)

    {

        if(nums[src]!=nums[dest])

        {

            nums[++dest]=nums[src];

            count++;

        }

    }

    return count;

}


http://www.kler.cn/news/108431.html

相关文章:

  • maven之父子工程版本控制案例实战,及拓展groupId和artifactId的含义
  • 67 内网安全-域横向smbwmi明文或hash传递
  • MacOS将Node.js升级到最新版本
  • 服务器之日常整活
  • Go语言用Resty库编写的音频爬虫代码
  • MatlabR2019b安装教程
  • 《Attention Is All You Need》阅读笔记
  • Hadoop、Hive安装
  • 【Qt6】为什么“转到槽函数“能在没有添加connect的情况下,把一个组件或对象和一个函数关联起来?
  • 力扣labuladong——一刷day12
  • 拿捏面试官,高频接口自动化测试面试题总结(附答案)狂收offer...
  • 是顺流还是逆流?未来物流作业是否将被机器人全面取代?
  • 安装 GMP、NTL、CTMalloc ,编译 OpenFHE
  • matlab将十六进制转换为十进制(hex2dec函数)
  • 公司电脑如何限制安装软件
  • 【网络安全 --- 文件上传靶场练习】文件上传靶场安装以及1-5关闯关思路及技巧,源码分析
  • 基于入侵杂草算法的无人机航迹规划-附代码
  • 左神算法题系列:动态规划机器人走路
  • 设置GIT代理
  • ES6 模块化编程 详解
  • 新一代AI技术,引领医疗智能革新共筑未来医疗生态
  • 红米电脑硬盘剪切
  • API商品数据接口调用实战:爬虫与数据获取
  • Web自动化测试进阶 —— Selenium模拟鼠标操作
  • selenium+python web自动化测试框架项目实战实例教程
  • 2023年9月电子学会Python等级考试试卷(五级)答案解析
  • Web:探索 SpreadJS强大的在线电子表格库
  • 批量去除影视剧中的片头片尾
  • 两数和的目标 python (初学者vs程序员)
  • 使用dirhunt无需暴力破解即可扫描Web目录