`

程序员面试题精选100题(37)-寻找丑数

阅读更多
题目:我们把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第1500个丑数。

思路:
只计算丑数,而不在非丑数的整数上花费时间。根据丑数的定义,丑数应该是另一个丑数乘以2、3或者5的结果(1除外)。因此我们可以创建一个数组,里面的数字是排好序的丑数。里面的每一个丑数是前面的丑数乘以2、3或者5得到的。

1,2,3,5,2*2,2*3,2*5,3*2,3*3,3*5,5*2(重复),5*3,5*5.....

使用LinkedHashMap来弄,把他当做队列

LinkedHashMap list = new LinkedHashMap();
list.add(1);
int[] arr = new int[]{2,3,5};
int arrIndex = 0;
public void getUglyNumber(int count){
   while(list.size()<count){
       list.add(list.get(listIndex)*arr[listIndex%3]);
       listIndex++;
   }
   System.out.println(list.get(count));
}

分享到:
评论

相关推荐

    程序员面试题精选100题

    随着技术领域的不断发展,对于数据结构与算法的理解成为衡量程序员能力的重要标准之一。特别是对于那些希望进入大厂或者追求技术深度发展的求职者来说,掌握经典的数据结构与算法题目尤为重要。在众多的数据结构中,...

    程序员面试100题数据结构和算法

    数据结构和算法是程序员面试中的核心考察点,它们直接影响到代码的效率和解决方案的质量。以下是一些基于给定标题和描述的关键知识点的详细说明: 1. **二元查找树(BST)转双向链表**:这道题要求将BST转换为一个...

    C/C++程序员面试指南.杨国祥(带详细书签).pdf

    面试题37:谁打碎的玻璃 面试题38:谁是最优秀的医生 面试题39:今天星期几 面试题40:五个人进行汽车竞赛 面试题41:下一行是什么 面试题42:三筐水果各是什么 面试题43:最后剩下的是谁 第15章 反应能力 面试题1:...

    程序员面试题100题(63)-数组中三个只出现一次的数字[算法].pdf,这是一份不错的文件

    在编程面试中,经常会遇到寻找数组中特定数字的问题,本题目的核心是找出一个整数数组中三个只出现一次的数字。这个问题可以通过位操作来高效解决,具体方法涉及到异或操作和二进制特性。以下是对这个问题的详细解析...

    java程序员面试题算法

    【程序 1】:这是一个经典的斐波那契数列问题,也称为兔子繁殖问题。...这些算法题目涵盖了基础的数据结构、算法思想以及逻辑推理,是Java程序员面试中常见的问题,对于提升编程能力和解决问题能力具有很大帮助。

    程序员经典50题带分析

    【程序员经典50题带分析】是一...以上只是部分题目解析,完整版的程序员经典50题会涵盖更多的算法和逻辑难题,适合程序员日常练习和面试准备,通过解决这些问题,程序员可以加深对编程语言的理解,提高问题解决能力。

    软件开发笔试面试题总结精华版

    这篇文档的标题是“软件开发笔试面试题总结精华版”,说明了这是一份汇集了软件开发领域面试和笔试常见问题的资源合集。这个合集来源于CSDN、PUDN等多个在线技术论坛,旨在帮助那些寻找IT开发职位的人准备面试。描述...

    C程序员语言面试100题.ppt

    常见的C/C++面试题目,可以省去自己去寻找总结的功夫,而且该资源包含内容,均为高频率、常见的面试题目

    数据结构微软面试100道题

    微软面试100道题系列是一套针对IT行业内应聘微软等知名科技公司的面试题集,它主要包括三个部分:数据结构、算法和海量数据处理。这些内容是程序员面试中非常重要的三个考察方向。 数据结构是计算机存储、组织数据...

    微软面试100题

    ### 微软面试100题精解 微软面试题目的设计往往涵盖了计算机科学与软件工程的多个领域,旨在评估应聘者的技术深度、问题解决能力以及逻辑思维能力。以下是对部分题目的深入解析: #### 1. 面试题1:水杯与玻璃杯的...

    百度面试题大收集算法

    【知识点详解】 ...以上各个知识点涵盖了算法、数据结构、操作系统、网络、数学和概率等多个IT领域,都是程序员在面试中可能会遇到的问题。理解和掌握这些知识点对于提升编程技能和解决实际问题具有重要意义。

    网易面试题

    题目要求找出1至100之间恰好有12个约数的五个数,并给出寻找方法。解决这类问题通常涉及到数学中的因数分解与组合。 #### 解决方案 为了找到这样的数,我们可以考虑以下步骤: 1. **理解约数的定义**:一个正整数n...

    JAVA面试题

    程序通过循环遍历100到999,使用`isLotus`函数判断每个数是否为水仙花数。函数通过分离百位、十位和个位数字,计算立方和,与原数比较来确定结果。 【程序4】是分解质因数的问题,用于将一个正整数表示为其质因数的...

    求数组的子数组之和的最大值,转载自:黑梦楠的日志

    提供的压缩文件名“程序员面试题精选100题.doc、精选100题.doc、程序员面试100题.pdf”表明这是一些面试题集,很可能包含了这个问题和其他类似的问题,可以帮助准备面试的程序员巩固算法知识,提升问题解决技巧。...

    100个最权威的招聘面试题及回答解析.doc

    【面试技巧解析】 1. 自我介绍:面试时的自我介绍是展示个人能力和特点的关键环节。应简洁明了地介绍自己的姓名、年龄、工作经验,并强调与应聘职位相关的技能和成就。例如,如果你是一名程序员,你可以提及你的...

    蓝桥杯c++-蓝桥杯竞赛练习之基础练习题特殊回文数.zip

    5. **递归解法**:回文数问题也可以通过递归来解决,但效率相对较低,主要适用于教学示例或面试题。 6. **动态规划**:在某些情况下,特殊回文数问题可能涉及到动态规划,例如寻找具有特定性质的最长回文子串等。 ...

Global site tag (gtag.js) - Google Analytics