LeetCode 面试题 17.09 第k个数[动态规划] HERODING的LeetCode之路
Posted HERODING23
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 面试题 17.09 第k个数[动态规划] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。
解题思路:
题目比较难懂,其实就是按从小到大顺序输出满足因子只有3,5,7中一个或几个的数,定义动态规划数组,以及三个指针,三个指针分别指向当前要和3,5,7相乘的数的下标,不断更新即可,最后返回最后一个数,代码如下:
class Solution
public:
int getKthMagicNumber(int k)
int point3 = 0;
int point5 = 0;
int point7 = 0;
vector<int> res(k, 1);
for(int i = 1; i < k; i ++)
int result = min(res[point3] * 3, min(res[point5] * 5, res[point7] * 7));
// 更新下标,防止重复
if(result % 3 == 0)
point3 ++;
if(result % 5 == 0)
point5 ++;
if(result % 7 == 0)
point7 ++;
res[i] = result;
return res[k - 1];
;
以上是关于LeetCode 面试题 17.09 第k个数[动态规划] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章
⭐算法入门⭐《堆》中等01 —— LeetCode 面试题 17.09. 第 k 个数
面试题 17.09. 第 k 个数 :「优先队列」&「多路归并」