264. Ugly Number II

一开始用了list稍微有点慢。改用了数组好多了。这里我们是使用三个指针来惰性的计算下一个值,取出其中最小的值加入到数组,注意值可能会有重复,所以我们要对于得到的三个值都进行判断,相等则指针加一。

class Solution {
    public int nthUglyNumber(int n) {
        if(n==1) return 1;
        int[] result = new int[n];
        int pos1 =0;
        int pos2 =0;
        int pos3 =0;
        result[0]=1;
        for(int i = 1 ;iresult[i])
                  result[i]=val2;
               pos2++;
            }
              if(val3==smallest)
            {
                if(val3>result[i])
                    result[i]=val3;
                pos3++;
            }
        }
        return result[n-1];
    }
}```

你可能感兴趣的:(264. Ugly Number II)