美文网首页
263. 丑数(每日一题)

263. 丑数(每日一题)

作者: lzyprime | 来源:发表于2021-04-11 00:46 被阅读0次

lzyprime 博客 (github)
创建时间:2021.04.10
qq及邮箱:2383518170

leetcode 笔记


题目描述

给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false 。

丑数 就是只包含质因数 2、3 和/或 5 的正整数。

 

示例 1:

输入:n = 6
输出:true
解释:6 = 2 × 3
示例 2:

输入:n = 8
输出:true
解释:8 = 2 × 2 × 2
示例 3:

输入:n = 14
输出:false
解释:14 不是丑数,因为它包含了另外一个质因数 7 。
示例 4:

输入:n = 1
输出:true
解释:1 通常被视为丑数。
 

提示:

-231 <= n <= 231 - 1

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/ugly-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

code

  • c++

class Solution {
public:
    bool isUgly(int n) {
        if (n <= 0) return false;
        int arr[] = {2, 3, 5};
        for (int i : arr) while (n % i == 0) n /= i;
        return n == 1;
    }
};
  • kotlin

一刀流,每次会有array(2, 3, 5)内存回收,和find{ n % it == 0 }的额外开销。

class Solution {
    tailrec fun isUgly(n: Int): Boolean = when {
        n <= 0 -> false
        n == 1 -> true
        else -> when (val i = arrayOf(2, 3, 5).find { n % it == 0 }) {
            null -> false
            else -> isUgly(n / i)
        }
    }
}

常规:

class Solution {
    fun isUgly(n: Int): Boolean = when {
        n <= 0 -> false
        n == 1 -> true
        else -> arrayOf(2, 3, 5).fold(n){ acc, i -> 
            var r = acc
            while (r % i == 0) r /= i
            r
        } == 1
    }
}
  • scala

object Solution {
  def isUgly(n: Int): Boolean = n match {
    case 0 => false
    case 1 => true
    case _ => Seq(2, 3, 5).foldLeft(n) { (acc, i) =>
      var r = acc
      while (r % i == 0) r /= i
      r
    } == 1
  }
}
  • rust

rust 一刀流正合适

vec![2, 3, 5].iter().fold(n, |mut acc, i|{ while acc % i == 0 {acc /= i}; acc}) == 1
impl Solution {
    pub fn is_ugly(mut n: i32) -> bool {
        match n {
            0 => false,
            1 => true,
            _ => {
                vec![2, 3, 5].iter().fold(n, |mut acc, i| {
                    while acc % i == 0 {
                        acc /= i
                    }
                    acc
                }) == 1
            }
        }
    }
}

相关文章

  • 263. 丑数(每日一题)

    lzyprime 博客 (github)[https://lzyprime.github.io] 创建时间:2...

  • 每周 ARTS 第 11 期

    1. Algorithm 263. 丑数(简单) 描述: 编写一个程序判断给定的数是否为丑数。丑数就是只包含质因数...

  • 263. 丑数

    内容 编写一个程序判断给定的数是否为丑数。 丑数就是只包含质因数 2, 3, 5 的正整数。 示例 1: 输入: ...

  • 263. 丑数

    题目 分析 所谓一个数m是另一个数n的因子,是指n能被m整除,也就是n % m == 0。根据丑数的定义,丑数只能...

  • 263. 丑数

    题目描述 编写一个程序判断给定的数是否为丑数。 丑数就是只包含质因数 2, 3, 5 的正整数。 示例: 思路 1...

  • 263. 丑数

    编写一个程序判断给定的数是否为丑数。 丑数就是只包含质因数 2, 3, 5 的正整数。 示例 1: 输入: 6输出...

  • LeetCode 263. 丑数

    【题目描述】编写一个程序判断给定的数是否为丑数。丑数就是只包含质因数 2, 3, 5 的正整数。 【示例1】 【示...

  • Java日记2018-05-17

    第一题 丑数把只包含因子 2、3 和 5 的数称作丑数(Ugly Number)。例如 6、8 都是丑数,但 14...

  • 263. Ugly Number 丑数

    题目链接tag: Easy; question:  Write a program to check whethe...

  • 递归:263. 丑数(简单)

    给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false 。 丑数 就是...

网友评论

      本文标题:263. 丑数(每日一题)

      本文链接:https://www.haomeiwen.com/subject/gpiokltx.html