Go语言实现:【剑指offer】丑数
该题目来源于牛客网《剑指offer》专题。
把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。习惯上我们把1当做是第一个丑数。
求按从小到大的顺序的第N个丑数。
Go语言实现:
func getUglyNumber(index int) int {
//第0-6个丑数,分别是0-6
if index < 7 {
return index
}
i2 := 0
i3 := 0
i5 := 0
//从1开始,1*2,1*3,1*5
num := 1
//按顺序存丑数
var arr []int
arr = append(arr, num)
for len(arr) < index {
//取小
num = min(arr[i2]*2, min(arr[i3]*3, arr[i5]*5))
//防止重复,如果一样,都会++,但只存一次
if arr[i2]*2 == num {
i2++
}
if arr[i3]*3 == num {
i3++
}
if arr[i5]*5 == num {
i5++
}
arr = append(arr, num)
}
return num
}
输入数字是否为丑数:
func isUgly(num int) bool {
if num <= 0 {
return false
}
if num == 1 {
return true
}
for num != 1 {
if num % 2 == 0 {
num /= 2
} else if num % 3 == 0 {
num /= 3
} else if num % 5 == 0 {
num /= 5
} else {
return false
}
}
return true
}
Go语言实现:【剑指offer】丑数的更多相关文章
- 剑指Offer——丑数
剑指Offer--丑数 前言 参照<剑指Offer>,通过洞悉其思想并消化吸收,改为java实现,供自己以后巩固. package cn.edu.ujn.offersword; i ...
- 剑指Offer丑数问题
这是剑指第一次卡死我的题……记录一下 首先看题目: 把只包含质因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含质因子7. 习惯上我们把1当做是第一个丑数 ...
- 剑指offer 丑数
思路:可以发现,每个丑数都是由以前的丑数得到.当前丑数一定是之前丑数能够得到的最小丑数. AC代码 class Solution { public: int GetUglyNumber_Solutio ...
- 用js刷剑指offer(丑数)
题目描述 把只包含质因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含质因子7. 习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. 思路 ...
- 剑指offer——丑数(c++)
题目描述只包含质因子2.3和5的数称作丑数(UglyNumber).例如6.8都是丑数,但14不是,因为它包含质因子7,习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. 思路:1.逐个 ...
- 剑指offer--33.丑数
本来用数组做标志位,但是测试数据有第1500个,859963392,惹不起哦 ------------------------------------------------------------- ...
- 剑指Offer-32.丑数(C++/Java)
题目: 把只包含质因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含质因子7. 习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. 分析: ...
- 剑指Offer32 丑数
/************************************************************************* > File Name: 32_UglyNu ...
- 干货 | 剑指offer系列文章汇总
下面是名企面试中经常会出现的面试题目,大家可以戳相应的题目查看题目细节,其答案会在紧接着的后一篇中出现 剑指offer系列 始 剑指offer—灯管问题(1) 剑指offer—10人电梯(2) ...
随机推荐
- 快速掌握—HTML快速实现自定义Input开关
HTML <input id="customSwitch" type="checkbox" /> <label for="custo ...
- 有哪些让人相见恨晚的Python库(一)
对于我这个经常用python倒腾数据的人来说,下面这个库是真·相见恨晚 记得有一次我在服务器上处理数据时,为了解决Pandas读取超过2000W条数据就内存爆炸的问题,整整用了两天时间来优化.最后通过 ...
- 区间dp - 全部按下一列石头
There is one last gate between the hero and the dragon. But opening the gate isn't an easy task. The ...
- cf - 429D
Iahub and Sorin are the best competitive programmers in their town. However, they can't both qualify ...
- 2018徐州现场赛A
题目链接:http://codeforces.com/gym/102012/problem/A 题目给出的算法跑出的数据是真的水 #include<iostream> #include&l ...
- 分布式唯一ID的生成方案
分布式ID的特性 全局唯一 不能出现重复的ID,这是最基本的要求. 递增 有利于关系数据库索引性能. 高可用 既然是服务于分布式系统,为多个服务提供ID服务,访问压力一定很大,所以需要保证高可用. 信 ...
- 去除空白字符串trim
let str = ' foo ' //去除开头空格 console.log(str.trimLeft()) console.log(str.trimStart()) //去除尾部空格 console ...
- 学习 lind api 十月 第5弹
继续 四弹里的 自定义的api response message 但是 那上面的 那些值得也是包含
- vuex 基本语法
VUEX 的核心概念 1 .State (常用):2.Getters :3.Mutations(常用):4.Actions :5.Modules: 1.State是唯一的数据源,单一的状态树 cons ...
- php--->查询超大文件(12G)
今天遇到一个要在一个12G日志中查询数据的需求,手中暂时没有查询这种超大文件的工具,于是自己写了一个程度来读这个超大文件 其整体思路就是一行一行地去读取超大文件中的数据,然后将拿出的一行数据做相应的查 ...