weixin_43078650
2019-05-13 17:19
采纳率: 23.1%
浏览 645
已采纳

急!!!求助大神,找出一个数组中第一个重复出现两次的元素,没有则返回空。

找出一个数组中第一个重复出现两次的元素,没有则返回空。
例如[1,2,3,4,5,2,3,4,2],重复两次的是3和4,3比4先出现,结果为3

public int getFirstDoubleRepetitiveltem(int[] items){
//代码
return null;
}
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • 孙大胜 2019-05-13 17:32
    已采纳
    public static void main(String[] args) {
            int value = 0;
            int[] aa = { 1, 2, 3, 4, 5, 2, 3, 4, 2 };
            Map<Integer, Integer> m = new LinkedHashMap<Integer, Integer>();
            // 将每个数字对应的个数放入map
            for (int i = 0; i < aa.length; i++) {
                if (m.containsKey(aa[i])) {
                    m.put(aa[i], ((Integer) m.get(aa[i])) + 1);
                } else {
                    m.put(aa[i], 1);
                }
            }
            // 遍历map
            Iterator<Map.Entry<Integer, Integer>> it = m.entrySet().iterator();
            while (it.hasNext()) {
                Map.Entry<Integer, Integer> entry = it.next();
                if (entry.getValue() == 2) {
                    value = entry.getKey();
                    break;
                }
            }
            System.out.println(value);
        }
    
    打赏 评论
  • threenewbee 2019-05-13 17:22
    public Integer getFirstDoubleRepetitiveltem(int[] items){
    for (int i = 1; i < items.length; i++)
    for (int j = 0; j < i; j++)
    if (items[i] == item[j]) return new Integer(items[i]);
    return null;
    }
    

    当然,两重循环的效率会比较低,如果需要效率比较高的算法,采纳了,可以帮你写。

    打赏 评论
  • ꧁gaoKuo꧂ 2019-05-13 17:28
        public static Integer getFirstDoubleRepetitiveltem(int[] items){
            for (int i = 0,len = items.length;i < len;i++) {
                if(isRepeat(items,i)){
                    return items[i];
                }
            }
            return null;
        }
    
        public static boolean isRepeat(int[] items,int focus){
            for (int i = 0;i < focus;i++) {
                if (items[i] == items[focus]){
                   return true;
                }
            }
            return false;
        }
    
    打赏 评论
  • 李斯特List 2019-05-13 17:50

    private static int method(int[] is){
    int a=0;
    for(int i=0;i<is.length-1;i++){
    for(int j=i+1;j<is.length;j++){
    if(is[i]==is[j]){
    return is[i];
    }
    }
    }
    return a;
    }

    打赏 评论
  • yangyang198 2019-05-13 17:57

    public static Integer getFirstDoubleRepetitiveltem(int[] items){
    for (int i = 0,len = items.length;i < len;i++) {
    if(isRepeat(items,i)){
    return items[i];
    }
    }
    return null;
    }

    public static boolean isRepeat(int[] items,int focus){
        for (int i = 0;i < focus;i++) {
            if (items[i] == items[focus]){
               return true;
            }
        }
        return false;
    }
    
    打赏 评论
  • 11111dsdfd 2019-05-14 08:59
    public int getFirstDoubleRepetitiveltem(int[] intArr){
            int temp = 0;
            aa:
            for(int i= 0; i<intArr.length; i++) {
                for(int j= i+1; j<intArr.length; j++) {
                    if(intArr [i] == intArr[j]) {
                        temp = intArr[i];
                        break aa;
                    }
                }
            }
            return 0;
    }
    
    打赏 评论

相关推荐 更多相似问题