码迷,mamicode.com
首页 > 其他好文 > 详细

Rust 存在重复元素 两种解法

时间:2020-07-27 17:42:29      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:ssi   turn   nta   rust   函数   return   shm   sam   hash   

HashMap

第一种也是我最先想到的使用HashMap迭代数组,数组元素做Map的K,V随意

最后比较 Map.len() 和 Vec.len() 。耗时 4ms ;

use std::collections::HashMap;
let mut map: HashMap<i32,i32> = HashMap::new();
let len = nums.len();
for i in nums.iter(){   map.insert(*i, 0); } if map.len() < len {   return true; }   return false;

使用Map还可以不比较长度,使用 map.contains(T) 这个函数 ,耗时 8ms;

 我认为应该是每次插入都要检查一次耗费时间,因此还是最后比较长度更高效;

if map.contains(i) {
   return true;
}

Sort Vec

第二种就是先排序数组,之后比较相邻的元素。耗时 0ms;

let mut v = nums;
v.sort();
for i in 1..v.len() {
if v[i] == v[i-1] {
   return true;
   }
}
return false;

 

Rust 存在重复元素 两种解法

标签:ssi   turn   nta   rust   函数   return   shm   sam   hash   

原文地址:https://www.cnblogs.com/Addoil/p/13385433.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!