【 腾讯精选练习 50 题】06—删除排序数组中的重复项【简单】

简介: 【 腾讯精选练习 50 题】06—删除排序数组中的重复项【简单】

题目链接

26. 删除排序数组中的重复项【简单】

题目简介

给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。

不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。

示例 1:

给定数组 nums = [1,1,2], 
函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 
你不需要考虑数组中超出新长度后面的元素。

示例 2:

给定 nums = [0,0,1,1,1,2,2,3,3,4],
函数应该返回新的长度 5, 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4。
你不需要考虑数组中超出新长度后面的元素。

题目解析

  1. 看完题目,有些懵
  2. 大概的意思是:给你一段排序的数组,让你将重复的放后面,最后输出的是一个不重复的字段
  3. 利用双指针:left = 0、right = 0
  • 如果 nums[left] == nums[right] 相当于 当前指向的数值是一样的,我们将 right 右移
  • 如果 nums[left] != nums[right] 相当于 当前指向的数值不一样,我们进行 nums[++left] = nums[right]
  • 最后返回 left + 1 即可

题目代码

class Solution {
    public int removeDuplicates(int[] nums) {
        if(nums.length == 0){
            return 0;
        }
        int left = 0;
        int right = 0;
        while(left <= right && right < nums.length){
            if(nums[left] != nums[right]){
                nums[++left] = nums[right];
            }
            right++;
        }
        return left + 1;
    }
}


相关文章
|
缓存 编译器 C语言
一起来探讨volatile关键字
在C语言中,volatile是一个关键字,用于告诉编译器不要对被声明为volatile的变量做优化,以确保每次对该变量的读写都直接操作内存。
|
8月前
|
文字识别 算法 小程序
【项目总结】快瞳医疗化验单的OCR识别
快瞳科技通过图像识别技术,成功解决了医疗化验单OCR识别难题。项目要求精准识别表格内容,尤其是化验数值和名称,准确率达85%以上。针对化验单来源多样、干扰因素多的问题,团队采用智能文档抽取模型、opencv技术(如霍夫变换)进行图片扶正与裁剪,优化识别精度。最终,项目不仅达到药企要求,还实现超越,为医疗行业智能化转型提供了高性价比解决方案,助力快瞳科技在医疗信息化领域树立良好口碑。
|
IDE Java 编译器
07. 【Java教程】Java 集成开发环境 - IntelliJ IDEA
07. 【Java教程】Java 集成开发环境 - IntelliJ IDEA
359 1
|
监控 网络协议 Java
IO 多路复用? 什么是 IO 多路复用? 简单示例(日常生活)来解释 IO 多路复用 一看就懂! 大白话,可爱式(傻瓜式)教学! 保你懂!
本文通过日常生活中的简单示例解释了IO多路复用的概念,即一个线程通过监控多个socket来处理多个客户端请求,提高了效率,同时介绍了Linux系统中的select、poll和epoll三种IO多路复用的API。
834 2
|
Ubuntu Java Linux
玩转Ubuntu零基础教程,让你成为Ubuntu高手。
本教程将介绍Ubuntu操作系统的各个方面。它探讨了Ubuntu桌面版的各种功能,风格和工作。比较我们通常会在Windows操作系统上找到的软件。有一些专注于Ubuntu服务器版本的章节。本教程还包括有兴趣了解Ubuntu的虚拟机和云端的人员的独立章节。
404 1
玩转Ubuntu零基础教程,让你成为Ubuntu高手。
dapp农场养成游戏系统开发规则详细/方案设计/步骤逻辑/源码案例
Developing a decentralized application (DApp) farm development game system based on blockchain technology requires considering various rules and implementation steps. The following are some detailed rules and guidelines for reference:
|
区块链 Windows
5款超级好用的桌面端软件推荐
今天我想分享一些自己比较喜欢的桌面端软件,还请大家包涵指正。如果你曾搜索过 Windows效率工具推荐,对下文的软件或许有所了解。不过为了凑字数,我还是会再介绍一遍。
241 0
|
存储 Dragonfly 缓存
Nydus 加速镜像一致性校验增强
GitLink 编程夏令营是在 CCF 中国计算机学会指导下,由 CCF 开源发展委员会(CCF ODC)举办的面向全国高校学生的暑期编程活动。 这是去年(2022)的夏令营活动中,王瑞同学参加 Nydus 开源项目的总结,主要介绍了为 Nydus 支持镜像与文件系统一致性校验所做的相关工作。
Nydus 加速镜像一致性校验增强
|
消息中间件 运维 监控
ChaosBlade 在工商银行混沌工程体系中的应用实践
ChaosBlade 在工商银行混沌工程体系中的应用实践
613 0