leetcode--Ugly Number II
来源:互联网 发布:淘宝怎样上传宝贝视频 编辑:程序博客网 时间:2024/06/05 20:11
题目:Ugly Number II
Write a program to find the n
-th ugly number.
Ugly numbers are positive numbers whose prime factors only include 2, 3, 5
. For example, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12
is the sequence of the first 10
ugly numbers.
Note that 1
is typically treated as an ugly number.
One:利用2、3、5之间的乘积值的大小比较。
public class Solution { public int nthUglyNumber(int n) { int[] uglyNumbers = new int[n]; uglyNumbers[0] = 1; int index2 = 0; int index3 = 0; int index5 = 0; int counter = 1; while(counter < n){ int min = minOfThree(uglyNumbers[index2]*2,uglyNumbers[index3]*3,uglyNumbers[index5]*5); if(min == uglyNumbers[index2]*2){ index2++; } if(min == uglyNumbers[index3]*3){ index3++; } if(min == uglyNumbers[index5]*5){ index5++; } uglyNumbers[counter] = min; counter++; } return uglyNumbers[n-1]; } private int minOfThree(int x,int y,int z){ return Math.min(z,Math.min(x,y)); }}
Two:进一步简化
public class Solution { public int nthUglyNumber(int n) { int[] uglyNumbers = new int[n]; uglyNumbers[0] = 1; int index2 = 0; int index3 = 0; int index5 = 0; int counter = 1; while(counter < n){ int min = Math.min(uglyNumbers[index5]*5,Math.min(uglyNumbers[index2]*2,uglyNumbers[index3]*3)); if(min == uglyNumbers[index2]*2)index2++; if(min == uglyNumbers[index3]*3)index3++; if(min == uglyNumbers[index5]*5)index5++; uglyNumbers[counter] = min; counter++; } return uglyNumbers[n-1]; }}
Three:利用坐标来操作
public class Solution { public int nthUglyNumber(int n) { int[] uglyNumbers = new int[n]; uglyNumbers[0] = 1; int index2 = 0; int index3 = 0; int index5 = 0; int p = 1; while(p < n){ uglyNumbers[p] = Math.min(uglyNumbers[index5]*5,Math.min(uglyNumbers[index2]*2,uglyNumbers[index3]*3)); if(uglyNumbers[p] >= uglyNumbers[index2]*2)index2++; if(uglyNumbers[p] >= uglyNumbers[index3]*3)index3++; if(uglyNumbers[p] >= uglyNumbers[index5]*5)index5++; p++; } return uglyNumbers[n-1]; }}
0 0
- Leetcode -- Ugly Number II
- LeetCode: Ugly Number II
- [leetcode] Ugly Number II
- Leetcode: Ugly Number II
- [LeetCode] Ugly Number II
- LeetCode Ugly Number II
- [leetcode] Ugly Number II
- [LeetCode] Ugly Number II
- LeetCode ||Ugly Number II
- Leetcode: Ugly Number II
- leetcode:ugly Number II
- *LeetCode-Ugly Number II
- Ugly Number II -- leetcode
- LeetCode Ugly Number II
- [Leetcode] Ugly Number II
- [Leetcode] Ugly Number II
- leetcode-Ugly Number II
- [LeetCode] Ugly Number II
- 【leetcode】88. Merge Sorted Array【java】
- 欢迎使用CSDN-markdown编辑器
- Netty
- js实现栈结构
- express + node.js 入门(3)安装supervisor
- leetcode--Ugly Number II
- 自定义控件三部曲之动画篇(二)——Interpolator插值器
- 数组指针和指针数组详解
- OpenStack 高可用和灾备方案(上)
- 欢迎使用CSDN-markdown编辑器
- 自定义view遇到的问题
- 开启技术博客之旅
- 两地分居夫妻的四个诱惑
- Registry GC源码分析