學習目标:
力扣第1207題:獨一無二的出現次數
學習内容:
給你一個整數數組 arr,請你幫忙統計數組中每個數的出現次數。
如果每個數的出現次數都是獨一無二的,就傳回 true;否則傳回 false。
示例 1:
輸入:arr = [1,2,2,1,1,3]
輸出:true
解釋:在該數組中,1 出現了 3 次,2 出現了 2 次,3 隻出現了 1 次。沒有
兩個數的出現次數相同。
示例 2:
輸入:arr = [1,2]
輸出:false
示例 3:
輸入:arr = [-3,0,1,-3,1,1,1,-3,10,0]
輸出:true
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/unique-number-of-occurrences
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
學習時間:
2020年10月28日
學習産出:
/*
*将數組中的數存進HashMap中,由于HashMap沒有重複鍵的特點,
*當循環後map遇到了重複鍵,就将value的值加一,然後将map中的值存入TreeSet,
*Treeset無法有重複的元素,将set的size與map的size比較,
*相同則說明所有數出現的次數都不一樣,不相同則有出現次數相同的數
*/
HashMap<Integer, Integer> map=new HashMap<Integer, Integer>();
for(int x:arr) {
if(map.containsKey(x)) {
map.put(x, map.get(x)+1);
}else {
map.put(x, 1);
}
}
TreeSet<Integer> set = new TreeSet<>(map.values());
if(map.size()==set.size()) {
return true;
}
return false;