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

数组中重复的数字

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

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param numbers int整型一维数组 
     * @return int整型
     */
    public int duplicate (int[] numbers) {
        // write code here
        HashSet<Integer> hashSet=new HashSet();
        if(numbers==null||numbers.length==0||(numbers.length==1)){
            return -1;
        }
        hashSet.add(numbers[0]);
        for (int i = 1; i <numbers.length ; i++) {
            if(numbers[i]>numbers.length-1||numbers[i]<0){
                return -1;
            }
            if(hashSet.contains(numbers[i])){
                return numbers[i];
            }
            hashSet.add(numbers[i]);
            
        }
        return -1;
    }
}

这道题比较简单,首先判断如果传入的数组为空或者数组的长度小于2的情况,都返回-1,接下来将numbers[0]存入hashset,接下里从numbers[1]开始遍历数组,如果数据不在[0,n-1]就返回-1,如果数组存在过就返回该数据就可,不存在就存入hashset。

全部评论

相关推荐

大野鸡:其实就是量,但是时间有限,1000题只要不是全中等简单,简单中等困难1-2-1,大概能打打比赛了(前20%),10000题就是下一个灵神
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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