题目
有些数的素因子只有 3,5,7,请设计一个算法找出第 k 个数。注意,不是必须有这些素因子,而是必须不包含其他的素因子。例如,前几个数按顺序应该是 1,3,5,7,9,15,21。
示例 1:
输入: k = 5 输出: 9
解题
方法一:三指针
类似于丑数得做法,丑数是2、3、5,而这道题是3、5、7
class Solution { public: int getKthMagicNumber(int k) { int a=0,b=0,c=0; vector<int> dp(k); dp[0]=1; for(int i=1;i<k;i++){ int n2=dp[a]*3,n3=dp[b]*5,n5=dp[c]*7; dp[i]=min({n2,n3,n5}); if(dp[i]==n2) a++; if(dp[i]==n3) b++; if(dp[i]==n5) c++; } return dp[k-1]; } };