Leetcode 313. 超级丑数 解题思路及C++实现
生活随笔
收集整理的這篇文章主要介紹了
Leetcode 313. 超级丑数 解题思路及C++实现
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
解題思路:
與Leetcode 264. 丑數(shù) II的解題思路一樣,均使用最小堆來存儲丑數(shù),第i次更新最小堆時,得到第i大的丑數(shù)。
可結(jié)合Leetcode 264. 丑數(shù) II的解題思路理解:https://blog.csdn.net/gjh13/article/details/90247437
?
class Solution { public:int nthSuperUglyNumber(int n, vector<int>& primes) {priority_queue<int, vector<int>, greater<int>> pq;pq.push(1);int last = 0;int i = 0;while(i < n){if(last == pq.top()) pq.pop();else{long tmp = pq.top(); //為了防止tmp * primes[j] 超出int的數(shù)值范圍,將tmp定義為longfor(int j = 0; j < primes.size(); j++){if(tmp * primes[j] < INT_MAX) pq.push(tmp * primes[j]);}i++;last = tmp;pq.pop();}}return last;} };?
?
?
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的Leetcode 313. 超级丑数 解题思路及C++实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Leetcode 264. 丑数 II
- 下一篇: Leetcode 347. 前K个高频元