Skip to content

Commit 6a3f0c2

Browse files
authored
Update 347-top-k-frequent-elements.js
1 parent b87194f commit 6a3f0c2

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

347-top-k-frequent-elements.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,3 +66,34 @@ const topKFrequent = function(nums, k) {
6666
return res
6767
};
6868

69+
// another
70+
71+
72+
/**
73+
* @param {number[]} nums
74+
* @param {number} k
75+
* @return {number[]}
76+
*/
77+
const topKFrequent = function(nums, k) {
78+
const n = nums.length
79+
const freq = Array(n + 1).fill(null)
80+
const hash = {}
81+
for(let e of nums) {
82+
if(hash[e] == null) hash[e] = 0
83+
hash[e]++
84+
}
85+
for(let k in hash) {
86+
if(hash.hasOwnProperty(k)) {
87+
const v = hash[k]
88+
if(freq[v] == null) freq[v] = []
89+
freq[v].push(k)
90+
}
91+
}
92+
const res = []
93+
for(let i = n; i >= 0; i--) {
94+
if(freq[i] != null) res.push(...freq[i])
95+
if(res.length >= k) break
96+
}
97+
if(res.length > k) res.slice(k)
98+
return res
99+
};

0 commit comments

Comments
 (0)