【前端算法】獨一無二的出現次數,統計次數加去重

給你一個整數數組 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

提示:code

  • 1 <= arr.length <= 1000
  • -1000 <= arr[i] <= 1000

解題代碼io

/**
 * @param {number[]} arr
 * @return {boolean}
 */
var uniqueOccurrences = function(arr) {
    var obj = {};
    //1.統計每一個元素出現的次數,記錄下來
    for (var i = 0; i < arr.length; i++) {
        var key = arr[i];
        if (obj[key]) {
            obj[key]++;
        } else {
            obj[key] = 1;
        }
    }
    //2.去重
    var temp = [];
    for (var k in obj) {
        temp.push(obj[k]);
    };
    return temp.length == (new Set(temp)).size;
};
相關文章
相關標籤/搜索