獨一無二的出現次數
獨一無二的出現次數
給你一個整數陣列arr
,請你幫忙統計陣列中每個數的出現次數。
如果每個數的出現次數都是獨一無二的,就返回true
;否則返回false
。
示例
輸入:arr = [1,2,2,1,1,3]
輸出:true
解釋:在該陣列中,1 出現了 3 次,2 出現了 2 次,3 只出現了 1 次。沒有兩個數的出現次數相同。
輸入:arr = [1,2]
輸出:false
輸入:arr = [-3,0,1,-3,1,1,1,-3,10,0]
輸出:true
題解
/**
* @param {number[]} arr
* @return {boolean}
*/
var uniqueOccurrences = function(arr) {
var hashTable = Object.create(null);
arr.forEach(v => {
if(hashTable[v] === void 0) hashTable[v] = 1;
else ++hashTable[v];
})
var keys = Object.keys(hashTable);
var values = Object.values(hashTable);
return keys.length === [...new Set(values)].length;
};
思路
使用雜湊表記錄每個數字出現的次數,之後使用Set
處理出現的次數,然後對比雜湊表的長度即可,首先定義一個雜湊表,在此處是使用Js
的普通物件的形式,此處只是為了藉助其結構所以不需要原型指向,另外在Js
中提供了Map
物件作為鍵值對雜湊表的解決方案,之後遍歷陣列,如果未定義,那麼就將雜湊表的此鍵值的值設定為1
,如果鍵值在雜湊表中定義,那麼就將其值加1
,之後獲取物件中所有的鍵陣列,以及所有的值陣列,之後將值陣列作為引數傳入Set
物件去重,之後用Spread
操作符將其展開並形成一個新陣列,之後獲取其長度與鍵陣列的長度作比較並返回即可。
每日一題
https://github.com/WindrunnerMax/EveryDay
參考
https://leetcode-cn.com/problems/unique-number-of-occurrences/
相關文章
- 1207. 獨一無二的出現次數
- [LeetCode]1207. 獨一無二的出現次數LeetCode
- 做了無數休閒遊戲爆款後,他們現在要做獨一無二的二次元聯機競技遊戲遊戲二次元
- 只出現一次的數字 II
- 136只出現一次的數字
- LeetCode 只出現一次的數字LeetCode
- 在其它數都出現k次的陣列中找到只出現一次的數陣列
- 136. 只出現一次的數字
- LC-出現一次的數字II
- 只出現一次的數字--力扣力扣
- LeetCode 只出現一次的數字IIILeetCode
- LeetCode 只出現一次的數字IILeetCode
- LeetCode136 只出現一次的數字LeetCode
- LeetCode之只出現一次的數字-SwiftLeetCodeSwift
- 找出陣列中只出現一次的數字陣列
- 力扣136.只出現一次的數字力扣
- 一次數獨生成及解題演算法的剖析(Java實現)演算法Java
- LeetCode每日一題:只出現一次的數字(No.136)LeetCode每日一題
- leetcode136. 只出現一次數字LeetCode
- Dictionary計算字元出現的次數字元
- 統計字串出現的次數(C)字串
- JavaScript統計字元出現的次數JavaScript字元
- leetcode力扣136.只出現一次的數字LeetCode力扣
- 第一次只出現一次的字元字元
- matlab——統計相同元素出現的次數Matlab
- JZ-040-陣列中只出現一次的數字陣列
- 給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。陣列
- Kontakt 7 - 打造獨一無二的音色帝國 mac/win版Mac
- 【ES6基礎】Symbol介紹:獨一無二的值Symbol
- 為什麼程式設計是獨一無二的職業?程式設計
- mysql 計算 一個文字欄位的內容一個文字出現的次數MySql
- Leetcode 137:只出現一次的數字 II(最詳細的解法!!!)LeetCode
- 2351. 第一次出現兩次的字母
- 統計陣列中各數字(元素)出現的次數陣列
- 探索《超自然車旅》裡的超現實世界,獨一無二的生存遊戲,今日就出發!遊戲
- NFT具有獨一無二、稀缺、不可分割的屬性
- Matlab tabulate統計數字出現的次數,如果陣列中出現0Matlab陣列
- 第一章:位運算-------出現k次與出現1次