题解 | #丑数#
丑数
https://www.nowcoder.com/practice/6aa9e04fc3794f68acf8778237ba065b
package main
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param index int整型
* @return int整型
*/
func GetUglyNumber_Solution( index int ) int {
// write code here
// 丑数公式: (2^x)*(3^y)*(5^z)
if index < 7 {
return index
}
var arr []int
arr = append(arr, 1)
p2, p3, p5 := 0, 0, 0
for i:=2; i<= index; i++ {
newNum := min(arr[p2]*2, arr[p3]*3, arr[p5]*5)
arr = append(arr, newNum)
if newNum == arr[p2]*2 {p2 += 1}
if newNum == arr[p3]*3 {p3 += 1}
if newNum == arr[p5]*5 {p5 += 1}
}
return arr[len(arr)-1]
}
func min(x, y, z int) int {
min := x
if y < min {
min = y
}
if z < min {
min = z
}
return min
}
