zoukankan      html  css  js  c++  java
  • 寻找重复数

    给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。

    function findDuplicate(nums) {
        for(let i = 0;i < nums.length;i++){
            let item= nums[i]
            let index = nums.lastIndexOf(item)
            if(index > -1 && index != i){
                return item
            }
        }
        return undefined
    }
    
    function findDuplicate(nums) {
        for(let i = 0;i < nums.length - 1;i++){
            let item= nums[i]
            for(let j = nums.length - 1;j > i;j--){
                let jItem = nums[j]
                if(item == jItem){
                    return item
                }
            }
        }
        return undefined
    }
    
    function findDuplicate(nums) {
        let map = new Map()
        for(let i = 0;i < nums.length;i++){
            let item= nums[i]
            if(map.has(item)){
                return item
            }else{
                map.set(item,1)
            }
        }
        return undefined  
    }

    注:方法三,换成数组,使用arr.includes(item)判断也可以。

    Leecode提交通过

     

  • 相关阅读:
    CF 436D 最小生成树
    HDU 1847 博弈
    ZOJ 3666 博弈 SG函数
    zoj3675 BFS+状态压缩
    HDU 4734 F(x) 数位DP
    HDU 3709 Balanced Number 数位DP
    HDU 3555 数位DP
    HDU 4336 Card Collector
    HDU4340 Capturing a country DP
    CF 351A
  • 原文地址:https://www.cnblogs.com/zhenjianyu/p/13402914.html
Copyright © 2011-2022 走看看