獨一無二的出現次數

2021-10-24 14:36:12 字數 1096 閱讀 6987

給你乙個整數陣列 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

這道題實際非常簡單,看了一遍題,由於受前幾天做的(高度檢查器)這道題,學別人的解題思路,用桶排序哈哈哈,結果做出來之後。多用了兩個資料結構,記憶體佔用率較高。竟然還做錯了,沒有考慮陣列中存在負數這種情況,

錯誤**如下:

public boolean uniqueoccurrences(int arr) 

//遍歷桶中資料,看桶中是否有重複元素

//如何判斷陣列中有重複元素

//因為桶中有很多未賦值的元素初始化值為0,還要去重0

listlist = new arraylist<>();

for(int i=0;iset = new hashset<>();

for(integer i : list)

//如果長度相等返回true否則返回false

if(set.size() == list.size())

return false;

}

後來想了一下,用什麼桶結構。直接用map集合不美滋滋。先從map中獲取陣列,如果key存在就value++,跳出本次迴圈進行下次迴圈。如果不存在就預設value值為1

正確**如下:

public static boolean uniqueoccurrences(int arr) 

//如果長度相等返回true否則返回false

if(set.size() == values.size())

return false;

}

獨一無二的出現次數

給你乙個整數陣列arr,請你幫忙統計陣列中每個數的出現次數。如果每個數的出現次數都是獨一無二的,就返回true 否則返回false。輸入 arr 1,2,2,1,1,3 輸出 true 解釋 在該陣列中,1 出現了 3 次,2 出現了 2 次,3 只出現了 1 次。沒有兩個數的出現次數相同。輸入 a...

1207 獨一無二的出現次數

給你乙個整數陣列 arr,請你幫忙統計陣列中每個數的出現次數。如果每個數的出現次數都是獨一無二的,就返回 true 否則返回 false。示例 1 輸入 arr 1,2,2,1,1,3 輸出 true 解釋 在該陣列中,1 出現了 3 次,2 出現了 2 次,3 只出現了 1 次。沒有兩個數的出現次...

1207 獨一無二的出現次數

給你乙個整數陣列 arr,請你幫忙統計陣列中每個數的出現次數。如果每個數的出現次數都是獨一無二的,就返回 true 否則返回 false。示例 1 輸入 arr 1,2,2,1,1,3 輸出 true 解釋 在該陣列中,1 出現了 3 次,2 出現了 2 次,3 只出現了 1 次。沒有兩個數的出現次...