leetcode347题
时间: 2023-08-01 18:08:41 浏览: 252
根据引用\[1\]和引用\[2\]的代码,题目leetcode347是关于前K个高频元素的问题。给定一个整数数组nums和一个整数k,要求返回出现频率前k高的元素。可以按任意顺序返回答案。
解题思路是首先使用一个对象o来记录每个元素出现的频率。然后将对象o中的键值对转化为一个数组num,每个元素包含键和值。接着对数组num按照值进行降序排序。最后返回排序后的数组num中前k个元素的键。
可以使用以下代码解决该问题:
```javascript
var topKFrequent = function(nums, k) {
let o = {};
let num = \[\];
for (let i = 0; i < nums.length; i++) {
if (o\[nums\[i\]\]) {
o\[nums\[i\]\]++;
} else {
o\[nums\[i\]\] = 1;
}
}
for (const oKey in o) {
num.push({ key: oKey, value: o\[oKey\] });
}
num.sort((a, b) => {
return b.value - a.value;
});
return num.splice(0, k).map(item => {
return item.key;
});
};
```
这段代码使用了一个对象o来记录每个元素出现的频率,然后将对象o中的键值对转化为一个数组num。接着对数组num按照值进行降序排序,并返回排序后的数组num中前k个元素的键。
希望对你有帮助!
#### 引用[.reference_title]
- *1* [leetcode 33 题目](https://blog.csdn.net/m0_37874657/article/details/80024188)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [LeetCode_每日一题347](https://blog.csdn.net/qq_45578388/article/details/121915789)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文