17.09第k个数

下面是题目

下面是题目给出的模板

1
2
3
4
5
6
class Solution {
public:
int getKthMagicNumber(int k) {

}
};

用BFS+set可以完美遍历,真的太爽了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class solution{
public:
int getKthMagicNumber(int k) {
//有个小细节需要注意,那就是s.begin()返回的是迭代器 //如果要在迭代器中取物,那么就要用 *
//可能数字会很大,我们用long long 存储
set<long long>s;
s.insert(1);
int ans = 0;
while(k--)
{
//利用set,完美解决了去重复、小到大排序的问题
ans = *s.begin();
s.erase(s.begin);
s.insert(ans*3);
s.insert(ans*5);
s.insert(ans*7);
}
return ans;
}
};
-------------本文结束,感谢您的阅读-------------