题解 | #数组中重复的数字#

数组中重复的数字

http://www.nowcoder.com/practice/6fe361ede7e54db1b84adc81d09d8524

思路

  • 声明一个数组res用来存放元素出现次数
  • 其中res[i]=n 代表元素i在数组numbers中出现了n次
  • 在遍历过程中,若发现某个元素出现次数大于1,即重复了,即可返回

代码

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param numbers int整型一维数组 
 * @return int整型
 */
function duplicate( numbers ) {
    // write code here
    // 数组存放法
    // 特殊情况
    if(numbers.length<=1)
        return -1;
    var n=numbers.length;
    // 初始化声明一个长度为n的,元素为0的数组,
    // res[i]=n 代表元素i在numbers数组中出现了n次,初始化时,赋值为0,即所有元素出现次数为0
    var res=new Array(n).fill(0)
    for(let i=0;i<numbers.length;i++){
        res[numbers[i]]++;
        if(res[numbers[i]]>1){
            return numbers[i];
        }
    }
    return -1;
}
module.exports = {
    duplicate : duplicate
};
全部评论

相关推荐

程序员小白条:这比例牛逼,750:1
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务