演算法面試題:整型陣列data[]中每個元素的取值範圍是【0,99999】
阿新 • • 發佈:2021-01-27
題目:
整型陣列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]