设计一个算法,找出只含素因子2,3,5 的第 n 小的数。
2018-03-21 13:38
309 查看
注意事项 我们可以认为1也是一个丑数
样例 如果n = 9, 返回 10
方法一:缺点,当n=1665时,Time Limit Exceededpublic class Solution {
/**
* @param n: An integer
* @return: the nth prime number as description.
*/
public int nthUglyNumber(int n) {
// write your code here
int k=0;
int a=1;
int b=1;
for(int i=1;k!=n;i++){
a=i;
while((a%2)==0){
a=a/2;
}
while((a%3)==0){
a=a/3;
}
while((a%5)==0){
a=a/5;
}
if(a==1){
k++;
b=i;
}
}
return b;
}
}方法二:待续
样例 如果n = 9, 返回 10
方法一:缺点,当n=1665时,Time Limit Exceededpublic class Solution {
/**
* @param n: An integer
* @return: the nth prime number as description.
*/
public int nthUglyNumber(int n) {
// write your code here
int k=0;
int a=1;
int b=1;
for(int i=1;k!=n;i++){
a=i;
while((a%2)==0){
a=a/2;
}
while((a%3)==0){
a=a/3;
}
while((a%5)==0){
a=a/5;
}
if(a==1){
k++;
b=i;
}
}
return b;
}
}方法二:待续
相关文章推荐
- 有些数的素因子只有3,5,7.请设计一个算法,找出其中第k个数
- 程序员面试金典: 9.7数学与概率 7.7有些数的素因子只有3,5,7,请设计一个算法,找出其中第k个数
- 有些数的素因子只有3,5,7.请设计一个算法,找出其中第k个数
- 在一个整型数组中有一个元素的出现次数超过了数组长度的一半,试设计一个 在时间上尽可能高效的算法,找出这个元素。
- 有一个排好序的数列,数列中只有一个数只出现1次,其余每个数均出现了两次,设计出一个算法,找出那个只出现了一次的数
- 设计一个O(n2)时间的算法,找出由n个数组成的序列的最长单调递增子序列。
- 1、在一个由自然数1-1000中某些数字所组成的数组中,每个数字可能出现零次或者多次。设计一个算法,找出出现次数最多的数字。
- 【Java】给定有向图,设计一个算法,找出两个结点之间是否存在一条路径
- 一棵排序二叉树,令 f=(最大值+最小值)/2, 设计一个算法,找出距离f 值最近、大于f 值的结点。 复杂度如果是O(n2)则不得分
- 二叉排序树中,令f = (最大值+最小值) / 2,设计一个算法, 找出距离f值最近、大于f值的结点。复杂度不能为O(n2)。
- 程序员面试金典——解题总结: 9.18高难度题 18.11给定一个方阵,其中每个单元(像素)非黑即白。设计一个算法,找出四条边都是黑色像素的最大子方阵。
- 14、一棵排序二叉树,令 f=(最大值+最小值)/2, 设计一个算法,找出距离f值最近、大于f值的结点。
- 给定一个单向链表(长度未知),请设计一个既节省时间又节省空间的算法来找出该链表中的倒数第m个元素。实现这个算法,并为可能出现的特例情况安排好处理措施。“倒数第m个元素”是这样规定的:当m=0时,链表的
- 请设计一个既节省时间又节省空间的算法来找出该链表中的倒数第m个元素
- 设计一个算法,找出二叉树中某两个结点的第一个公共祖先.。不得将额外的结点存储在另外的数据结构中。注意:这不一定是二叉查找树。
- 程序员面试金典——解题总结: 9.17中等难题 17.12设计一个算法,找出数组中两数之和为指定值的所有整数对。
- 设计一个算法,找出二叉查找树中指定结点的“下一个“结点(也即中序后继)。可以假定每个结点都含有指向父结点的连接。
- 程序员面试金典——解题总结: 9.18高难度题 18.6设计一个算法,给定10亿数字,找出最小的100万个数字。假定计算机内存足以容纳全部10亿个数字。
- 给定有向图,设计一个算法,找出两个结点之间是否存在一条路径
- 一棵排序二叉树,令 f=(最大值+最小值)/2,设计一个算法,找出距离f值最近、大于f值的结点。 复杂度如果是O(n2)则不得分。