面试题34:丑数
来源:互联网 发布:qq拼音打字软件 编辑:程序博客网 时间:2024/06/05 02:37
package com.abuge;public class GetUglyNum {//得到三个数的最小值public static int getMin(int num1, int num2, int num3){int min = (num1 > num2) ? num2 : num1;min = (min > num3) ? num3 : min;return min;}//得到指定个丑数public static int getUglyNum(int index){if(index <= 0){return 0;}int[] uglyNumbers = new int[index];//初始化uglyNumbers[0] = 1;int currentIndex = 1;int mutiplyt2Index = 0;int mutiplyt3Index = 0;int mutiplyt5Index = 0;while(currentIndex < index){int min = getMin(uglyNumbers[mutiplyt2Index] * 2, uglyNumbers[mutiplyt3Index] * 3, uglyNumbers[mutiplyt5Index] * 5);uglyNumbers[currentIndex] = min;//此时currentIndex指向当前最大的丑数,然后寻找到一个乘以2/3/5的使其刚好大于此时最大丑数的下一个丑数while(uglyNumbers[mutiplyt2Index] * 2 <= uglyNumbers[currentIndex]){mutiplyt2Index++;}while(uglyNumbers[mutiplyt3Index] * 3 <= uglyNumbers[currentIndex]){mutiplyt3Index++;}while(uglyNumbers[mutiplyt5Index] * 5 <= uglyNumbers[currentIndex]){mutiplyt5Index++;}currentIndex++;}return uglyNumbers[currentIndex - 1];}public static void main(String[] args){System.out.println(getUglyNum(1));System.out.println(getUglyNum(2));System.out.println(getUglyNum(3));System.out.println(getUglyNum(4));System.out.println(getUglyNum(5));System.out.println(getUglyNum(6));System.out.println(getUglyNum(1500));}}
0 0
- 面试题34:丑数
- 面试题34:丑数
- 面试题34:丑数
- 面试题34 丑数
- 面试题34:丑数
- 面试题34:丑数
- 面试题34:丑数
- 【面试题34】丑数
- 面试题34:丑数
- 面试题34:丑数
- 面试题34:丑数
- 面试题34:丑数
- 面试题34:丑数
- 面试题 34: 丑数
- [剑指offer][面试题34]丑数
- [剑指offer]面试题34:丑数
- 剑指Offer:面试题34 丑数
- 剑指offer 面试题34 丑数
- cocos2d-x项目构建相关
- 有关eclipse
- iOS学习笔记——打电话、发短信
- 【扫描线】 codeforces 391D2 Supercollider
- 好的软件设计让人舒适,耳目一新--搜狗输入法的模糊匹配感觉
- 面试题34:丑数
- equals 面试题
- 有关svn
- C++ 11右值引用
- 聚类算法K-Means, K-Medoids, GMM, Spectral clustering,Ncut
- Google Earth截图助手
- java基础知识总结---黑马程序员
- Swift内存管理-示例讲解
- 拉普拉斯矩阵