var isUgly = function (num) {
if (num <= 0) {
return false;
}
while (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
};
Runtime: 68 ms, faster than 79.32% of JavaScript online submissions for Ugly Number.
Memory Usage: 35.6 MB, less than 33.33% of JavaScript online submissions for Ugly Number.
func isUgly(num int) bool {
if num <= 0 {
return false
}
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
}
Runtime: 4 ms, faster than 37.27% of Go online submissions for Ugly Number.
Memory Usage: 2.1 MB, less than 100.00% of Go online submissions for Ugly Number.
一次判断完
上面的做法,每次都要判断三个,就很浪费
这种做法能在一次判断完
func isUgly(num int) bool {
if num <= 0 {
return false
}
for num%2==0{
num /=2
}
for num%3==0{
num /=3
}
for num%5==0{
num /=5
}
return num==1
}
Runtime: 0 ms, faster than 100.00% of Go online submissions for Ugly Number.
Memory Usage: 2.2 MB, less than 50.00% of Go online submissions for Ugly Number.
一下子快了很多
var isUgly = function (num) {
if (num <= 0) {
return false;
}
while(num%2===0){
num /= 2
}
while(num%3===0){
num /= 3
}
while(num%5===0){
num /= 5
}
return num===1
};
Runtime: 68 ms, faster than 79.32% of JavaScript online submissions for Ugly Number.
Memory Usage: 35.5 MB, less than 66.67% of JavaScript online submissions for Ugly Number.
来,全给你列出来了
全算出来,看看效果怎样
const getAll = function () {
const result = [1]
for (let i = 2; i < 231; i++) {
let item = i
while (item % 2 === 0) {
item /= 2
}
while (item % 3 === 0) {
item /= 3
}
while (item % 5 === 0) {
item /= 5
}
if (item === 1) {
result.push(i)
}
}
console.log("result", result)
}