用Rust刷LeetCode之26 删除有序数组中的重复项

news2024/11/20 4:53:38

26. 删除排序数组中的重复项[1]

难度: 简单

老的描述:

alt

新的描述:

alt



注意是 排序数组,非严格递增排列,即已经是排好序的,只不过有重复元素

func removeDuplicates(nums []int) int {
    if len(nums) == 0 {
        return 0
    }
    i := 0
    for j := 1; j < len(nums); j++ {

      // 判断是否为重复元素
        if nums[j]!= nums[i] {
            i++
            nums[i] = nums[j]
        }
    }
    return i + 1
}
alt

Rust版本:

fn main() {
    let mut nums = vec![11233];
    // let mut nums= vec![0,0,1,1,1,2,2,3,3,4];
    let len = remove_duplicates(&mut nums);
    println!("去重后vec的长度为: {:?}", len); // 输出: 3
}

fn remove_duplicates(nums: &mut Vec<i32>) -> usize {
    if nums.is_empty() {
        return 0;
    }

    let mut i = 0;

    for j in 1..nums.len() {
        if nums[j] != nums[i] {
            i += 1;
            nums[i] = nums[j];
        }
    }

    i + 1
}
alt

remove_duplicates 函数使用双指针的方法来原地删除重复元素。指针 i 指向当前已处理的非重复元素的最后一个位置,指针 j 用于遍历数组。如果 nums[j] 与 nums[i] 不相等,则将 nums[j] 移到 nums[i+1] 的位置,并将 i 向前移动一步。最后返回 i+1,即为删除重复元素后的新长度。

参考资料

[1]

26. 删除排序数组中的重复项: https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1298035.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电源小白入门学习3——电源系统常见元件选型MOS管、二极管、电感篇

电源小白入门学习3——电源系统常见元件选型MOS管、二极管、电感篇 MOS管二极管电感 书接上文&#xff0c;上一期我们讲了电阻、电容选型中需要注意的事项&#xff0c;下面我们接着来介绍MOS管和二极管。 MOS管 关于MOS管的基本原理和内部的一些结构&#xff0c;PN结、半导体的…

uniapp切换页面时报错问题

我们来看如下错误&#xff1a; 该错误的意思是不能切换到 tabbar 页面。tabbar页面通常是公共页面或者底部导航栏&#xff0c;如果我们用 navigateTo 或者 redirectTo 都不能实现页面切换。 我们有两种方式&#xff1a; 第一种是用 switchTab 来进行切换&#xff0c;但注意切…

Kettle 安装配置

文章目录 Kettle 安装配置Kettle 安装Kettle 配置连接 Hive Kettle 安装配置 Kettle 安装 在安装Kettle之前&#xff0c;需要确定已经安装Java运行环境。Kettle需要Java的支持才能运行&#xff0c;JDK的版本最好是8.x的太新的也会出现bug。Kettle的7.1版本的太旧了&#xff0…

【PWN】学习笔记(一)【二进制基础】

目录 课程教学一次简单的Hack程序的编译与链接Linux下的可执行文件格式ELF进程虚拟地址空间程序的编译与链接程序的装载与进程的执行x86&amd64汇编简述 课程教学 课程链接&#xff1a;https://www.bilibili.com/video/BV1854y1y7Ro/?vd_source7b06bd7a9dd90c45c5c9c44d12…

【Gradle】mac环境安装Gradle及配置

官网安装说明&#xff1a;Gradle | Installation 由于Gradle运行依赖jvm&#xff0c;所以事先需要安装jdk&#xff0c;并确认你的jdk版本和gradle版本要求的对应关系&#xff0c;这个官网上有说明&#xff0c;但是我试了一下不太准确&#xff0c;供参考&#xff0c;链接如下&a…

自动化测试Allure报告

这一节主要是记录allure的内容以及用法&#xff0c;怎么让他生成一个完整的想要的报告。 allure生成的报告和其他五花八门的报告对比了一下&#xff0c;它的可读性是最好、最直观的。这不仅仅是我想要的效果&#xff0c;也是很多小伙伴想要的结果&#xff0c;毕竟这是给领导看…

kettle完成mysql表与表之间的更新和插入

版本&#xff1a;20231209 kettle完成数据库表与表之间的转换非常的简单&#xff0c;只需要在输入模块选择&#xff1a;输入表&#xff1b;在输出模块选择&#xff1a;插入和更新表模块 实例展示&#xff1a;将表stu1的数据同步到stu2&#xff0c;并覆盖掉stu2原本的数据。 cr…

情深不必纠缠

那一年&#xff0c;男孩女孩在万千人中相遇了。多年后女人的一封邮件&#xff0c;让男人与女人的灵魂相遇了。他们无缘夫妻&#xff0c;却发现彼此是灵魂的陪伴。不能携手相守&#xff0c;却懂得彼此的心灵。 有一天&#xff0c;女人告诉男人要回家了&#xff0c;问男人心里会不…

JOSEF约瑟 接触式中间继电器 JZC1-53 AC220V 导轨安装

系列型号 JZC1-22中间继电器&#xff1b;JZC1-44中间继电器&#xff1b; JZC1-62中间继电器&#xff1b;JZC1-80中间继电器&#xff1b; JZC1-71中间继电器&#xff1b;JZC1-53中间继电器&#xff1b; JZC1-32中间继电器&#xff1b;JZC1-40中间继电器&#xff1b; JZC1-31中间…

Laya2.13.3接入第三方库Socket.io

服务端&#xff1a; 1.新建一个文件夹&#xff0c;使用npm.init -y创建node工程 2.在控制台使用以下代码下载Socket.io npm install socket.io 3.创建一个app.js的文件&#xff0c;将以下代码填入 import { Server } from "socket.io"; import { createServer }…

nginx配置正向代理支持https

操作系统版本&#xff1a; Alibaba Cloud Linux 3.2104 LTS 64位 nginx版本&#xff1a; nginx-1.25.3 1. 下载软件 切换目录 cd /server wget http://nginx.org/download/nginx-1.25.3.tar.gz 1.1解压 tar -zxvf nginx-1.25.3.tar.gz 1.2切换到源码所在目录…

作为CSS开发人员你不能错过的15个节省时间的网站

本文翻译自 15 Time-Saving Websites You Should Know As A CSS Developer&#xff0c;作者&#xff1a;Shefali&#xff0c; 略有删改。 在这篇文章中&#xff0c;我将向您介绍15个网站&#xff0c;它们可以为您节省大量时间&#xff0c;并增强您的CSS开发体验。 CSS Buttons…

安装dhg

python版本&#xff1a;3.9 离线安装pytorch&#xff1a;download.pytorch.org/whl/torch_stable.html 问题1&#xff1a; 离线安装时没办法安装依赖包导致的&#xff0c;但是在线安装很蛋疼&#xff0c;最后按下面这个老哥的搞了解决pytorch指令安装时Could not find a versi…

简单实现Spring容器(三) 初始化单例池并完成getBean() createBean()方法

阶段3: (仍需打磨,静态处有小瑕疵) // 1.编写自己的Spring容器,实现扫描包,得到bean的class对象. // 2.扫描将 bean 信息封装到 BeanDefinition对象,并放入到Map.3.初始化单例池并完成getBean() createBean()方法思路: 初始化单例池,也就是如果Bean是单例的就实例化,并放入到…

Numpy矩阵(第16讲)

Numpy矩阵(第16讲)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹…

接口测试-Jmeter使用

一、线程组 1.1 作用 线程组就是控制Jmeter用于执行测试的一组用户 1.2 位置 右键点击‘测试计划’-->添加-->线程(用户)-->线程组 1.3 特点 模拟多人操作线程组可以添加多个&#xff0c;多个线程组可以并行或者串行取样器(请求)和逻辑控制器必须依赖线程组才能…

将一维数组转变成二维数组

说在前面 &#x1f388; 算法并不一定都是很难的题目&#xff0c;也有很多只是一些代码技巧&#xff0c;多进行一些算法题目的练习&#xff0c;可以帮助我们开阔解题思路&#xff0c;提升我们的逻辑思维能力&#xff0c;也可以将一些算法思维结合到业务代码的编写思考中。简而言…

gdb指令随笔

记录一下自己使用过的gdb命令 linux指令 objdump -d bomb > bomb.asm history gdb指令 GDB用法及命令大全 GDB基本调试命令 GDB常用命令大全 gdb查看内存 &#xff08;x/100xb&#xff09; disas 函数 反汇编 x/s 查看内存&#xff0c;以字符串 run 文件&#xff…

Moco框架的搭建使用

一、前言   之前一直听mock&#xff0c;也大致了解mock的作用&#xff0c;但没有具体去了解过如何用工具或框架实现mock&#xff0c;以及也没有考虑过落实mock&#xff0c;因为在实际的工作中&#xff0c;很少会考虑用mock。最近在学java&#xff0c;刚好了解到moco框架是用于…

城市基础设施智慧路灯改造的特点

智慧城市建设稳步有序推进。作为智慧城市的基础设施&#xff0c;智能照明是智慧城市的重要组成部分&#xff0c;而叁仟智慧路灯是智慧城市理念下的新产品。随着物联网和智能控制技术的飞速发展&#xff0c;路灯被赋予了新的任务和角色。除了使道路照明智能化和节能化外&#xf…