題意:
不能被2,3,5以外的素數整除的數,稱為丑數;找出第1500個丑數;
思路:
用優先隊列和map判重;
如果x是丑數,則2x,3x,5x都是丑數;
不停的放出優先隊列;
並取出隊頭(最小的數)x;
要判斷這個數是否已經訪問過;
找到第1500個輸出;
#include #include #include #include #include #define ll long long using namespace std; priority_queue , greater > q; map m; int main() { q.push(1); m[1] = 1; int count = 0; while(1) { ll t = q.top(); q.pop(); count++; if(count == 1500) { printf("The 1500'th ugly number is %lld.\n",t); break; } if(!m[t * 2]) { m[t * 2] = 1; q.push(t * 2); } if(!m[t * 3]) { m[t * 3] = 1; q.push(t * 3); } if(!m[t * 5]) { m[t * 5] = 1; q.push(t * 5); } } return 0; }
LeetCode Contains Duplicate II
[LeetCode][Java] Unique Paths
C++對文件的操作 1.打開磁盤文件 打開文件是指在文件
二叉搜索樹與雙向鏈表,二叉搜索樹題目:輸入一棵二叉搜索樹,現
1.引言
MST.... C. Dungeon