Rust 存在重复元素 两种解法
Posted addoil
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rust 存在重复元素 两种解法相关的知识,希望对你有一定的参考价值。
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 存在重复元素 两种解法的主要内容,如果未能解决你的问题,请参考以下文章