mirror of
https://github.com/ShusenTang/LeetCode.git
synced 2024-09-02 14:20:01 +00:00
fix typo
This commit is contained in:
parent
3a76a21f0b
commit
28323c4973
@ -3,11 +3,11 @@
|
||||
此题要求第n个超级丑陋的数, 与[264. Ugly Number II.md](https://leetcode.com/problems/ugly-number-ii/)是类似的, 只是这里质数可以任意给定,
|
||||
加大了难度, 但本质是一样的. 大致思路就是直接从给定的质数构造ugly数, 可参见[264 题解](https://github.com/ShusenTang/LeetCode/blob/master/solutions/264.%20Ugly%20Number%20II.md).
|
||||
|
||||
# 思路一
|
||||
## 思路一
|
||||
在求k个候选值的最小值时, 可以采用直接遍历一遍的思路, 这样总的复杂度就是O(kn).
|
||||
> STL中`min_element`和`max_element`可以求一个vector的最小/大值, 返回的是迭代器.
|
||||
|
||||
# 思路二
|
||||
## 思路二
|
||||
当k比较大时候思路一就显得可优化了, 我们可以维护一个大小为k的候选值最小堆, 每个元素包含两个域: value和idx, 分别代表值和由哪一个质数得来, 可以用pair实现.
|
||||
|
||||
每当我们从堆顶pop出一个元素, 这个元素的value就是下一个丑陋的数(注意可能重复), 这个元素的idx就代表从哪一个质数得来, 应该将该质数的idx加一, 再向堆中插入下一个候选值.
|
||||
|
Loading…
Reference in New Issue
Block a user