77 - 丑数

题目

编写一个程序判断给定的数是否为丑数。

丑数就是只包含质因数 2, 3, 5 的正整数。

示例 1:

输入: 6

输出: true

解释: 6 = 2 × 3

示例 2:

输入: 8

输出: true

解释: 8 = 2 × 2 × 2

示例 3:

输入: 14

输出: false

解释: 14 不是丑数,因为它包含了另外一个质因数 7。

说明:

  1. 是丑数。

  2. 输入不会超过 32 位有符号整数的范围: $[-2^{31}, 2^{31}-1]$

解答

就是说,判断一个数是否能被2、3、5乘起来咯

然后规定了输入整数范围,那么最快的速度就是枚举😂😂

直接除

作者:vailing

链接:https://leetcode-cn.com/problems/ugly-number/solution/lian-xu-pan-duan-zui-hao-by-vailing/

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.

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.

一次判断完

上面的做法,每次都要判断三个,就很浪费

这种做法能在一次判断完

作者:ge-lu 链接:https://leetcode-cn.com/problems/ugly-number/solution/0msjie-by-ge-lu-3/

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.

一下子快了很多

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.

来,全给你列出来了

全算出来,看看效果怎样

那么结果是啥呢?

那么速度怎样呢?

。。。我发现我看错了

不是231,而是$2^{31}$。

好吧。是枚举不了的了。。

顺便把go的也写了,还用了二分法。。然而由于枚举不完就算了吧。。

go没有现成的算法,只能手写

但是排序过的切片,可以用二分法查找啊。

Last updated

Was this helpful?