zoukankan      html  css  js  c++  java
  • [编程题] 数组中的重复数字

    数组中的重复数字

    题目描述

    image-20200702235756495

    Java代码

    、import java.util.*;
    public class Solution {
        // Parameters:
        //    numbers:     an array of integers
        //    length:      the length of array numbers
        //    duplication: (Output) the duplicated nu Here duplication like pointor in C/C++, duplication[0] equal *duplmber in the array number,length of duplication array is 1,so using duplication[0] = ? in implementation;
        //                 ication in C/C++
        //    这里要特别注意~返回任意重复的一个,赋值duplication[0]
        // Return value:       true if the input is valid, and there are some duplications in the array number
        //                     otherwise false
        public boolean duplicate(int[] numbers, int length, int[] duplication) {
            Map<Integer, Integer> map = new LinkedHashMap<Integer, Integer>(length);
            if(numbers==null || numbers.length==0){
                return false;
            }
            
            for (int i = 0; i < numbers.length; i++) {
                if (!map.containsKey(numbers[i])) {
                    map.put(numbers[i], 1);
                } else {
                    int value = map.get(numbers[i]);
                    map.put(numbers[i], ++value);
                }
            }
    
            for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
                Integer key = entry.getKey();
                Integer value = entry.getValue();
                if (value != 1) {
                    duplication[0] = key;
                    return true;
                }
            }
            return false;
        }
    }
    
  • 相关阅读:
    C++多态深入分析!
    字符编码总结
    算法:并查集
    树的非递归遍历:一种很好的算法
    算法:快速排序
    算法:堆排序
    字符串匹配:KMP算法, Boyer-Moore算法理解与总结
    shodan搜索
    google hacking 语法
    FOFA的搜索语句
  • 原文地址:https://www.cnblogs.com/jiyongjia/p/13227958.html
Copyright © 2011-2022 走看看