zoukankan      html  css  js  c++  java
  • 存在重复

    给定一个整数数组,判断是否存在重复元素。

    如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。

      1.方法一(暴力解法)

    这个解法是第一时间脑海中反应出来的思路十分简单暴力
    1.就是每一次都与后N个数对比 不存在就接着下一个和后N个对比
    2.如果遇到相同则返回 true 反之就false

    /*
    * * @param {number[]} nums * @return {boolean} */ var containsDuplicate = function(nums) { for(var i=0;i<nums.length;i++){ for(var j=i+1;j<nums.length;j++){ if(nums[i] === nums[j]) return true } } return false; };

    方法二( 该方法在写完方法一后,想着会有更优解,同时想到es6的set 去重后 利用该方法判断)
    1利用es6 的set去重 再使用 Array.form方法将 set之后的对象转化为数组
     2.将转化后的的数组和原数组比较 长度相等则返回 false 反之里面必有重复 返回 true

    /*
    * * @param {number[]} nums * @return {boolean} */ var containsDuplicate = function(nums) { var news = Array.from(new Set(nums)); return news.length !== nums.length ? true : false ; };

     方法三 

    思路
      1. 利用一个对象作为临时存储,同时利用对象KEY存在会返回对应值原理,查找是否重复
      2. 对传入数组循环,若不存在则,将该索引下数组内容作为对象KEY并赋值为true,若再有这个数遇到则可利用其做相应判断
    3. 若全程未遇到则返回false

    /*
    * * @param {number[]} nums * @return {boolean} */ var containsDuplicate = function(nums) { let len = nums.length, obj = {} for (let i = 0; i < len; i++) { if (obj[nums[i]]) { return true } obj[nums[i]] = true } return false }
  • 相关阅读:
    Springboot2.0之HikariCP 连接池
    Spring Kafka中关于Kafka的配置参数
    Spring @Async异步线程池 导致OOM报错的原因
    JDK 8 函数式编程入门
    Spring自定义argumentResolver参数解析器
    Kafka消费异常处理
    Java项目生成可执行jar包、exe文件以及在Windows下的安装文件
    Mysql索引研究总结
    windows安装zookeeper
    JVM中的堆和栈
  • 原文地址:https://www.cnblogs.com/jjq-exchange/p/11118795.html
Copyright © 2011-2022 走看看