Rust 删除排序数组中的重复项

2023-11-05

力扣icon-default.png?t=N176https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array

参考代码和注释

fn main() {
    let mut v : Vec<i32> = vec![0,1,1,3,3,4,5,6,6,6];
    //借用所有权
    let new_length = remove_duplicate(&mut v);
    // 打印数组
    println!("{:?}", v);
    println!("{new_length}");
    //可以把usize转换为i32
    let len = new_length as i32;
    println!("{len}");
    //切片没有所有权,只能通过&借用
    println!("{:?}", &v[0..new_length])
}

// 有序的数组
//usize和isize主要作为数组和集合的索引类型使用
//借用所有权,方法结束后返还所有权
fn remove_duplicate(vec : &mut Vec<i32>) -> usize{
    
    let mut slow = 0;

    for fast in 1..vec.len() {
        if vec[slow] != vec[fast]{
            slow +=1;
            vec[slow] = vec[fast];
        }
    }

return slow+1;
}

#[cfg(test)]
mod tests {
    use super::*;
    
    #[test]
    fn test_move() {
        let v : Vec<i32> = vec![0,1,1,3,3,4,5,6,6,6];
        remove_duplicate(&v);
        // 打印数组
        println!("{:?}", v);
        // 判断两个数组相等
        assert_eq!(v, [0,1,3,4,5,6]);
    }

}

参考: GitHub - inrust/Rust-Programming-in-Action: 《Rust编程:入门、实战与进阶》源码

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rust 删除排序数组中的重复项 的相关文章

随机推荐

  • 服务器ssd硬盘接笔记本,M.2固态硬盘怎么安装 台式机与笔记本电脑安装M.2 SSD方法图解...

    固态硬盘接口众多 不过目前最流行的还是SATA3 0和M 2接口SSD 不过 伴随着SATA3 0接口存在性能瓶颈 越来越多高速固态硬盘采用了M 2接口 那么M 2固态硬盘怎么安装 下面脚本之家就来教大家如何给台式电脑或者笔记本安装M 2固
  • 2.5.5 创建、安装VIO分区

    最后更新2021 07 26 与创建AIX分区相同 但在HMC选择创建vio server 分区 图 261 创建VIO分区 输入分区名 VIO分区的Partition ID与名称都可以随意指定 但为了便于管理 建议分区的名称就是用DNS可
  • 静态分析的四种基本方法

    数据流分析 Data Flow Analysis 将数据看作是图 节点是程序的基本快 边是描述控制如何从一个基本快转移掉另一个基本快 图可以解决很多问题 例如 以 图中边的抽象得出数学方程 七届就是可达性问题的答案 PREfix SLAM静
  • 服务器怎么清空系统盘,服务器怎么清空数据

    服务器怎么清空数据 内容精选 换一换 华为云帮助中心 为用户提供产品简介 价格说明 购买指南 用户指南 API参考 最佳实践 常见问题 视频帮助等技术文档 帮助您快速上手使用华为云服务 无法看到 Windows 实例数据盘怎么办 磁盘挂载至
  • IPFS方得社区周欢:web3.0时代的分布式存储畅想

    链茶访是链茶馆新开辟的区块链项目报道专栏 每周会对一个项目团队进行专访 链茶馆将挖掘不同项目的闪光点 讲述区块链开发者的创业故事 为各位区块链同侪提供最新的项目资讯与行业动向 链茶馆今天采访了IPFS方得社区创始人周欢 该社区目前有4万用户
  • unity 常用的设计模式

    一 单例模式 在我们的整个游戏生命周期当中 有很多对象从始至终有且只有一个 这个唯一的实例只需要生成一次 并且直到游戏结束才需要销毁 单例模式一般应用于管理器类 或者是一些需要持久化存在的对象 优点 写起来很方便 调用方便 缺点 容易形成依
  • 深度学习3D可视化工具——Zetane Engine

    神经网络在工作的时候 里面到底是什么样 为了能透视这个 AI黑箱 中的过程 加拿大蒙特利尔一家公司开发一个3D可视化工具Zetane Engine 只需要上传一个模型 Zetane Engine就可以巡视整个神经网络 并且还可以放大网络中的
  • React-Router实战:路由传参(正则表达式)

    首先我们先做个路由普通传参的例子 一 准备工作 1 目录结构 index js components App gt App js Home gt Home js About gt About js News gt News js 2 源码
  • Qt常用命令和pro参数

    Qt常用工具 命令行指令 位于 C Qt5 7 1 5 7 msvc2015 64 bin 命令 功能 assistant 帮助文档 designer 设计器 linguist 翻译工具 lupdate 提取翻译字符串和生成ts文件 lre
  • logback不输出至文件_Logback日志使用详解

    Logback是由log4j创始人设计的一个开源日志组件 概述 Logback建立于三个主要类之上 日志记录器 Logger 输出端 Appender 和日志格式化器 Layout 这三种组件协同工作 使开发者可以按照消息类型和级别来记录消
  • caffe 红绿灯识别

    coding utf 8 加载必要的库 import numpy as np import sys os 设置当前目录 caffe root home ubuntu caffe sys path insert 0 caffe root py
  • Report, 20150402, Formulas on Entropy, Part I

    Section 1 Papoulis s Formula Lemma 1 If the random variables y 1 ldots y n are the linear combination of random variable
  • Artifactory Maven 使用教程

    Maven 仓库使用 修改 Maven 配置文件 选择左侧 Artifacts 选择自己需要上传的 Maven 仓库 点击Set Me Up 在弹出的设置框中点击 点击下载生成的文件 将生成的文件放到此目录下 或者你自己的 Maven 目录
  • 线性回归模型

    线性回归是最简单的机器学习模型 也是最基础最重要的分析工具 易于实现 本文将将简单讲述线性回归 最小二乘法和梯度下降三种算法 目录 1 线性回归方程 OLS 2 最小二乘法 OLS 3 梯度下降 GD 3 1超参数 的选择 3 2局部最小值
  • Android使用OpenCV来实现bitmap独立设置每个圆角

    Android使用OpenCV来实现bitmap独立设置每个圆角 关于opencv集成请参考我的其他文章 这里方便起见已经封装成java方法供大家调用 代码如下 public static Bitmap drawCircleRadius i
  • 打乱1-100的个数字的顺序

    package test import java util Random public class Test2 public static void swap int a int i int j if a null a length 0 i
  • Weex页面的编写——Weex的学习之路(六)

    通过前几博客我们把weex的内置组件都学习完了 组件的单独使用想必都可以了 那么 这次我们来做weex实际页面的编写 见证一下 一套代码在Android Ios和H5上使用 在weex官网推荐我们使用Weex Studio作为编译器 其实这
  • Unity 3D作业二:离散仿真引擎基础

    前言 中山大学中山大学数据科学与计算机学院3D游戏课程学习记录博客 简答题 1 解释游戏对象 GameObjects 和资源 Assets 的区别与联系 游戏对象 出现在游戏场景中 充当游戏的组件 游戏对象不做任何事情 需要特殊属性才能成为
  • Xcode Executable Not Found

    问题 Xcode编译项目报Executable Not Found的错误 Details Details Executable Not Found Domain DVTMachOErrorDomain Code 5 Recovery Sug
  • Rust 删除排序数组中的重复项

    力扣https leetcode cn com problems remove duplicates from sorted array 参考代码和注释 fn main let mut v Vec