解法一
思想其实和丑数是一样的,参见:剑指 Offer 49. 丑数
class Solution {public int nthSuperUglyNumber(int n, int[] primes) {final int len = primes.length;// dp[i]表示第i+1个丑数int[] dp = new int[n];dp[0] = 1;int[] pointer = new int[len];int[] num = new int[len];for (int i = 0; i < len; ++i) {num[i] = dp[pointer[i]] * primes[i];}for (int i = 1; i < n; ++i) {dp[i] = min(num);for (int j = 0; j < len; ++j) {if (num[j] == dp[i]) {++pointer[j];num[j] = dp[pointer[j]] * primes[j];}}}return dp[n - 1];}private int min(int[] arr) {int min = Integer.MAX_VALUE;for (int i : arr) {if (i < min) {min = i;}}return min;}}
