剑指offer——丑数

xiaoxiao2021-02-27  211

public class Solution { public int GetUglyNumber_Solution(int index) { if(index <= 0) return 0; int[] pUglyNumbers = new int[index+5]; pUglyNumbers[0] = 1; int nextUglyNumber = 1; int a = 0; int b = 0; int c = 0; while (nextUglyNumber < index) { int min = Min(pUglyNumbers[a] * 2, pUglyNumbers[b] * 3, pUglyNumbers[c] * 5); pUglyNumbers[nextUglyNumber] = min; while (pUglyNumbers[a] * 2 <= pUglyNumbers[nextUglyNumber]) { ++a; } while (pUglyNumbers[b] * 3 <= pUglyNumbers[nextUglyNumber]) { ++b; } while (pUglyNumbers[c] * 5 <= pUglyNumbers[nextUglyNumber]) { ++c; } ++nextUglyNumber; } return pUglyNumbers[nextUglyNumber-1]; } public int Min(int a, int b, int c) { int min = (a < b) ? a : b; min = (min < c) ? min : c; return min; } public static void main(String[] args) { Solution solution = new Solution(); System.out.println(solution.GetUglyNumber_Solution(2)); } }
转载请注明原文地址: https://www.6miu.com/read-11649.html

最新回复(0)