From 7c3dc34ee99d889493ce32fde2372c60b4ee083c Mon Sep 17 00:00:00 2001 From: fanxb Date: Mon, 12 Apr 2021 00:27:19 +0800 Subject: [PATCH] add --- 5.leetcode/src/com/fanxb/common/Q264.java | 38 +++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 5.leetcode/src/com/fanxb/common/Q264.java diff --git a/5.leetcode/src/com/fanxb/common/Q264.java b/5.leetcode/src/com/fanxb/common/Q264.java new file mode 100644 index 0000000..f7ecaf5 --- /dev/null +++ b/5.leetcode/src/com/fanxb/common/Q264.java @@ -0,0 +1,38 @@ +package com.fanxb.common; + +/** + * Created with IntelliJ IDEA + * + * @author fanxb + * Date: 2020/6/11 9:56 + */ +public class Q264 { + public int nthUglyNumber(int n) { + int count = 1, res = 1; + int[] uglyArr = new int[1690]; + uglyArr[0] = 1; + int[] uglyIndex = {0, 0, 0}; + int[] values = {2, 3, 5}; + while (count < n) { + int min = 0; + for (int i = 1; i < 3; i++) { + //找出三个中的最小值 + if (values[i] < values[min]) { + min = i; + } + } + if (uglyArr[count - 1] < values[min]) { + //数字不重复才记录 + uglyArr[count] = values[min]; + count++; + } + uglyIndex[min]++; + values[min] = min == 0 ? 2 * uglyArr[uglyIndex[min]] : min == 1 ? 3 * uglyArr[uglyIndex[min]] : 5 * uglyArr[uglyIndex[min]] ; + } + return uglyArr[count - 1]; + } + + public static void main(String[] args) { + System.out.println(new Q264().nthUglyNumber(16)); + } +}