剑指offer——面试题34:丑数
剑指offer——面试题34:丑数
Solution1:
最容易想到的,也是最不可能AC的
class Solution {public:int GetUglyNumber_Solution(int index) { //输出第index个丑数int count = 1;if(index == 1)return count;for(int i = 2; ; i++){if(isUglyNum(i) == true){count++;if(count == index)return i;}}}bool isUglyNum(int n) {while (n > 1) {for (int i = 2; i <= n; i++){if (n%i == 0){ //如果n能被i整除,i是因子,对i分小于等于5和大于5两种情况讨论if (i <= 5) {n /= i;break;}if (i > 5)return false;}}}return true;}
};
Solution2:
记住这种查数的技巧!!!
答案参考网址:
[1]http://www.cnblogs.com/qqky/p/6964764.html
[2]https://www.nowcoder.com/profile/5810633/codeBookDetail?submissionId=16629921
解题思路:https://blog.csdn.net/lhanchao/article/details/52079323
本题定义三个变量,对于当前已排好序找到的最大的丑数M,记录恰乘2、乘3、乘5大于当前最大的丑数M的三个位置,然后求三个位置*2 *3 *5的最小值即为下一个丑数的值
class Solution {
public:int GetUglyNumber_Solution(int index) {if (index < 7) return index;vector<int> res(index);res[0] = 1;int t2 = 0, t3 = 0, t5 = 0, i;for (i = 1; i < index; ++i) {res[i] = min(res[t2] * 2, min(res[t3] * 3, res[t5] * 5));if (res[i] == res[t2] * 2) t2++;if (res[i] == res[t3] * 3) t3++;if (res[i] == res[t5] * 5) t5++;}return res[index - 1];}
};
再感慨一句,别人的思路真牛逼啊~
剑指offer——面试题34:丑数相关推荐
- 剑指offer面试题[34]丑数
题目描述 把只包含因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含因子7. 习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数 ...
- 剑指offer 面试题49. 丑数
我们把只包含因子 2.3 和 5 的数称作丑数(Ugly Number).求按从小到大的顺序的第 n 个丑数. 示例: 输入: n = 10 输出: 12 解释: 1, 2, 3, 4, 5, 6, ...
- 剑指offer面试题49. 丑数
题目描述 我们把只包含因子 2.3 和 5 的数称作丑数(Ugly Number).求按从小到大的顺序的第 n 个丑数. 思路 详见链接 代码 class Solution:def nthUglyNu ...
- [剑指offer]面试题34:丑数
面试题34:丑数 题目:我们把只包含因子2.3和5的数称作丑数(Ugly Number).求按从小到大的顺序的第1500个丑数.例如6.8都是丑数,但14不是,因为它包含因子7.习惯上我们把1当做第一 ...
- 【剑指offer-Java版】34丑数
丑数:返回第N个丑数 只包含因子 2 3 5的数称为丑数,第一个丑数是 1 采用辅助数组的方法,提高时间效率 – 下一个丑数一定是已有的丑数乘以2 或者 3 或者 5 得到的 public class ...
- 剑指offer面试题34. 二叉树中和为某一值的路径(先序遍历)(回溯)
题目描述 输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径.从树的根节点开始往下一直到叶节点所经过的节点形成一条路径. 思路 详见链接 代码 class Solution:def ...
- [剑指offer]面试题第[57]题[Leetcode][第167题][JAVA][和为s的两个数字][两数之和][HashSet][二分][双指针]
[剑指offer]面试题第[57]题[Leetcode][第167题][第1题] 有序无序之分 题目输出不同之分 以下解法按照[剑指offer]面试题第[57]题进行题解 [问题描述][简单] 输入一 ...
- 剑指offer 面试题三 找出数组中重复的数字
1 import org.junit.Test; 2 3 import java.util.Arrays; 4 import java.util.HashSet; 5 6 public class D ...
- (补充)【打印1到最大的n位数】剑指offer——面试题12:打印1到最大的n位数
剑指offer--面试题12:打印1到最大的n位数 此题在牛客网上没有OnlineJudge,在此补充两种做法. 参考网址:https://blog.csdn.net/yanxiaolx/articl ...
最新文章
- POJ-2584 T-Shirt Gumbo 最大流
- Python-OpenCV 处理视频(五): 运动方向判断
- 2021 年 Linux 界的 12 件大事
- VC++中文件类型小结
- 11.Linux 高性能服务器编程 --- 定时器
- tcpdf html 格式重叠,使用TCPDF进行HTML呈现(PHP)
- 2020阿里云线上峰会预告
- 如何简化卷积神经网络_卷积神经网络:简化
- 计算机音乐的制作流程,Premiere制作音乐电子相册的方法和流程 计算机类数媒...
- Windows 错误报告
- LibreELEC(kodi)基本设置
- 【必看文件含发帖规范】2020年黑马程序员社区总版规发布!
- Redis通信协议和集群通信算法
- 基于知识图谱的知识泛化让AI学会“举一反三”
- Java中的自动向量化(SIMD)
- Ubuntu云服务器搭建饥荒联机版服务器教程
- 神州信息“六合上甲”获2022 DAMA中国数据治理大奖
- 【华为云技术分享】敏捷设计,高效协同,凸显设计端云协同价值
- json字符串,JSONObject对象,JavaBean对象互转。
- 【转载/翻译】HEVC中的CTU、CU、CTB、CB、PB和TB分别是什么
热门文章
- 数据结构上机实践第九周项目3 - 利用二叉树遍历思想解决问题
- LabView学习笔记(十):条件结构
- html 盒子写法,CSS盒子模型
- 三位数除以两位数怎么算竖式_苏教版三年级数学上册4.6笔算三位数除以一位数(首位不够除)微课视频 | 练习...
- 加密 数字_数字卢布不会具有BTC这样的加密资产的优势
- windows下python 自动截图功能
- mysql base dir_install_mysql57.sh
- linux set命令例子,学习一个 Linux 命令:declare/typeset 命令
- java为table添加一行_Js实现Table动态添加一行的小例子
- Node JS环境设置– Node.js安装