mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-07 15:45:40 +08:00
更新 0347.前k个高频元素 排版格式修复
This commit is contained in:
@ -5,8 +5,6 @@
|
|||||||
<p align="center"><strong><a href="https://mp.weixin.qq.com/s/tqCxrMEU-ajQumL1i8im9A">参与本项目</a>,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们收益!</strong></p>
|
<p align="center"><strong><a href="https://mp.weixin.qq.com/s/tqCxrMEU-ajQumL1i8im9A">参与本项目</a>,贡献其他语言版本的代码,拥抱开源,让更多学习算法的小伙伴们收益!</strong></p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
> 前K个大数问题,老生常谈,不得不谈
|
> 前K个大数问题,老生常谈,不得不谈
|
||||||
|
|
||||||
# 347.前 K 个高频元素
|
# 347.前 K 个高频元素
|
||||||
@ -29,9 +27,11 @@
|
|||||||
* 题目数据保证答案唯一,换句话说,数组中前 k 个高频元素的集合是唯一的。
|
* 题目数据保证答案唯一,换句话说,数组中前 k 个高频元素的集合是唯一的。
|
||||||
* 你可以按任意顺序返回答案。
|
* 你可以按任意顺序返回答案。
|
||||||
|
|
||||||
# 思路
|
## 算法公开课
|
||||||
|
|
||||||
《代码随想录》算法视频公开课:[优先级队列正式登场!大顶堆、小顶堆该怎么用?| LeetCode:347.前 K 个高频元素](https://www.bilibili.com/video/BV1Xg41167Lz),相信结合视频在看本篇题解,更有助于大家对本题的理解。
|
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html):[优先级队列正式登场!大顶堆、小顶堆该怎么用?| LeetCode:347.前 K 个高频元素](https://www.bilibili.com/video/BV1Xg41167Lz),相信结合视频再看本篇题解,更有助于大家对本题的理解**。
|
||||||
|
|
||||||
|
## 思路
|
||||||
|
|
||||||
这道题目主要涉及到如下三块内容:
|
这道题目主要涉及到如下三块内容:
|
||||||
1. 要统计元素出现频率
|
1. 要统计元素出现频率
|
||||||
@ -122,7 +122,7 @@ public:
|
|||||||
* 时间复杂度: O(nlogk)
|
* 时间复杂度: O(nlogk)
|
||||||
* 空间复杂度: O(n)
|
* 空间复杂度: O(n)
|
||||||
|
|
||||||
# 拓展
|
## 拓展
|
||||||
大家对这个比较运算在建堆时是如何应用的,为什么左大于右就会建立小顶堆,反而建立大顶堆比较困惑。
|
大家对这个比较运算在建堆时是如何应用的,为什么左大于右就会建立小顶堆,反而建立大顶堆比较困惑。
|
||||||
|
|
||||||
确实 例如我们在写快排的cmp函数的时候,`return left>right` 就是从大到小,`return left<right` 就是从小到大。
|
确实 例如我们在写快排的cmp函数的时候,`return left>right` 就是从大到小,`return left<right` 就是从小到大。
|
||||||
@ -130,10 +130,10 @@ public:
|
|||||||
优先级队列的定义正好反过来了,可能和优先级队列的源码实现有关(我没有仔细研究),我估计是底层实现上优先队列队首指向后面,队尾指向最前面的缘故!
|
优先级队列的定义正好反过来了,可能和优先级队列的源码实现有关(我没有仔细研究),我估计是底层实现上优先队列队首指向后面,队尾指向最前面的缘故!
|
||||||
|
|
||||||
|
|
||||||
# 其他语言版本
|
## 其他语言版本
|
||||||
|
|
||||||
|
### Java:
|
||||||
|
|
||||||
Java:
|
|
||||||
```java
|
```java
|
||||||
|
|
||||||
/*Comparator接口说明:
|
/*Comparator接口说明:
|
||||||
@ -216,7 +216,8 @@ class Solution {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Python:
|
### Python:
|
||||||
|
|
||||||
```python
|
```python
|
||||||
#时间复杂度:O(nlogk)
|
#时间复杂度:O(nlogk)
|
||||||
#空间复杂度:O(n)
|
#空间复杂度:O(n)
|
||||||
@ -245,7 +246,7 @@ class Solution:
|
|||||||
return result
|
return result
|
||||||
```
|
```
|
||||||
|
|
||||||
Go:
|
### Go:
|
||||||
|
|
||||||
```go
|
```go
|
||||||
//方法一:小顶堆
|
//方法一:小顶堆
|
||||||
@ -320,8 +321,8 @@ func topKFrequent(nums []int, k int) []int {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### JavaScript:
|
||||||
|
|
||||||
JavaScript:
|
|
||||||
```js
|
```js
|
||||||
// js 没有堆 需要自己构造
|
// js 没有堆 需要自己构造
|
||||||
class Heap {
|
class Heap {
|
||||||
@ -419,7 +420,7 @@ const topKFrequent = function (nums, k) {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
TypeScript:
|
### TypeScript:
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
function topKFrequent(nums: number[], k: number): number[] {
|
function topKFrequent(nums: number[], k: number): number[] {
|
||||||
@ -435,7 +436,8 @@ function topKFrequent(nums: number[], k: number): number[] {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
C#:
|
### C#:
|
||||||
|
|
||||||
```csharp
|
```csharp
|
||||||
public int[] TopKFrequent(int[] nums, int k) {
|
public int[] TopKFrequent(int[] nums, int k) {
|
||||||
//哈希表-标权重
|
//哈希表-标权重
|
||||||
@ -473,7 +475,7 @@ C#:
|
|||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Scala:
|
### Scala:
|
||||||
|
|
||||||
解法一: 优先级队列
|
解法一: 优先级队列
|
||||||
```scala
|
```scala
|
||||||
@ -517,7 +519,9 @@ object Solution {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
rust: 小根堆
|
### Rust
|
||||||
|
|
||||||
|
小根堆
|
||||||
|
|
||||||
```rust
|
```rust
|
||||||
use std::cmp::Reverse;
|
use std::cmp::Reverse;
|
||||||
@ -549,3 +553,4 @@ impl Solution {
|
|||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
||||||
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
|
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user