1. 程式人生 > 其它 >演算法面試題:整型陣列data[]中每個元素的取值範圍是【0,99999】

演算法面試題:整型陣列data[]中每個元素的取值範圍是【0,99999】

技術標籤:筆試面試演算法java資料結構

題目:

整型陣列data[]中每個元素的取值範圍是【0,99999】,編寫java程式統計在每個長度為10的區間各有多少個數字:【0,9】,【10,19】。。。【99990,99999】,

並將結果打印出來。注意:統計個數為零的區間不用列印

個人解體方案:

 public static void main(String[] args)  {
       int[] data = {1,2,9,15,78,17,9999,324,78,9996,73};
       int size = data.length;
        int start = 0;
        TreeMap<Integer,List> map = new TreeMap<>();
        for (int i = 0; i < size; i++) {
            if (map.get(data[i] / 10) == null) {
                ArrayList<Integer> integers = new ArrayList<>();
                integers.add(data[i]);
                map.put(data[i] / 10, integers);
            } else {
                List list = map.get(data[i] / 10);
                list.add(data[i]);
                map.put(data[i] / 10, list);
            }
        }

        map.forEach((key, value) -> {
            System.out.println("["+key*10+","+(key*10+9)+"]區間有" +value.size()+ "個數" + value);
        });

    }

列印結果

[0,9]區間有3個數[1, 2, 9]
[10,19]區間有2個數[15, 17]
[70,79]區間有3個數[78, 78, 73]
[320,329]區間有1個數[324]
[9990,9999]區間有2個數[9999, 9996]