剑指 Offer 49. 丑数

本打算自己写的力扣第一题,结果一道中等题难为了半天,是个动态规划自己一直在走遍历的坑子


class Solution {
public:
typedef long long ll;

    int nthUglyNumber(int n) {
        int res = 0;
        ll dp[2000];
        int res2 = 0, res3 = 0, res5 = 0;
        for(int i = 1; i < n; i ++ ){
			dp[i] = min(min(dp[res2] * 2, dp[res3] * 3), dp[res5] * 5);
			if(dp[i] == dp[res2] * 2) res2 ++ ;
			if(dp[i] == dp[res3] * 3) res3 ++ ;
			if(dp[i] == dp[res5] * 5) res5 ++ ;
		}
        return dp[n - 1];
    }
};

你可能感兴趣的:(动态规划-DP,力扣,动态规划,算法)