问题描述:
代码:
class Solution {
public int nthUglyNumber(int n) {
int []dp = new int [n+1];
int num2=0,num3=0,num5=0;
int p2=1,p3=1,p5=1;
dp[1]=1;
for(int i=2;i<=n;i++){
num2=dp[p2]*2;
num3=dp[p3]*3;
num5=dp[p5]*5;
dp[i]=Math.min(Math.min(num5,num3),num2);
if(dp[i]==num2)
{
p2++;
}
if(dp[i]==num3)
{
p3++;
}
if(dp[i]==num5)
{
p5++;
}
}
return dp[n];
}
}
思路:
问题描述:
代码:
class Solution {
public int numTrees(int n) {
int[] G = new int[n + 1];
G[0] = 1;
G[1] = 1;
for (int i = 2; i <= n; ++i) {
for (int j = 1; j <= i; ++j) {
G[i] += G[j - 1] * G[i - j];
}
}
return G[n];
}
}
思路: