zoukankan      html  css  js  c++  java
  • 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;
    
  • 相关阅读:
    JS判断单选框是否选中
    Js判断是否有属性
    判断是否有焦点
    Js 替代
    Js解析json
    回车事件
    js解析XML
    Linux常用基础(三)
    Linux常用基础(二)
    Linux常用基础(一)
  • 原文地址:https://www.cnblogs.com/Addoil/p/13385433.html
Copyright © 2011-2022 走看看