《剑指offer》丑数
来源:互联网 发布:扬尼斯-阿德托昆博数据 编辑:程序博客网 时间:2024/05/23 19:18
【 声明:版权所有,转载请标明出处,请勿用于商业用途。 联系信箱:libin493073668@sina.com】
题目链接:http://www.nowcoder.com/practice/6aa9e04fc3794f68acf8778237ba065b?rp=2&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
题目描述
把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。
思路
我们可以使用最直观的连除因子法来得到结果,但是这在时间效率上并不理想,但好处是没有额外的空间消耗
我们也可以使用空间换时间的做法,我们开一个数组来有序的保存所有的丑数,因为我们的前提是保证了这个数组的有序性,所以我们可以通过三个指针来循环计算
class Solution{public:int GetUglyNumber_Solution(int n){if(n<=0)return 0;int *uglyNum = new int[n];uglyNum[0] = 1;int *ugly2 = uglyNum;int *ugly3 = uglyNum;int *ugly5 = uglyNum;int cnt = 1;while(cnt<n){int _min = min(*ugly2*2,min(*ugly3*3,*ugly5*5));uglyNum[cnt] = _min;while(*ugly2*2<=uglyNum[cnt])++ugly2;while(*ugly3*3<=uglyNum[cnt])++ugly3;while(*ugly5*5<=uglyNum[cnt])++ugly5;++cnt;}int ans = uglyNum[cnt-1];delete []uglyNum;return ans;}};
0 0
- 【剑指offer】丑数
- 剑指offer-丑数
- 《剑指offer》丑数
- 【剑指Offer】丑数
- 剑指offer:丑数
- 剑指offer-丑数
- [剑指offer]丑数
- 剑指offer:丑数
- [剑指offer]丑数
- 《剑指offer》-丑数
- 剑指offer----丑数
- 剑指offer|丑数
- 剑指offer-丑数
- 剑指Offer:丑数
- 剑指offer--丑数
- 剑指offer-丑数
- 剑指offer 丑数
- 剑指offer-丑数
- 利用Eclipse构建Spark集成开发环境
- Postgres 的一些命令 mac下
- Axure RP动态面板
- 真机调试注意点
- 【视频处理】YUV格式说明
- 《剑指offer》丑数
- Maximum Subarray
- lintcode-哈稀函数-128
- 配置Struts2项目
- TextView 显示html文本
- 免费MATLAB替代品winpython
- java中的异常(Exception)介绍
- 出自ios深入浅出专栏(内购)
- [LeetCode-21] Merge Two Sorted Lists(合并两个有序链表)