• 264. Ugly Number II (Solution 1)


    package LeetCode_264
    
    import java.util.*
    
    /**
     * 264. Ugly Number II
     * https://leetcode.com/problems/ugly-number-ii/description/
     *
     * Write a program to find the n-th ugly number.
    Ugly numbers are positive numbers whose prime factors only include 2, 3, 5.
    
    Example:
    Input: n = 10
    Output: 12
    Explanation: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 is the sequence of the first 10 ugly numbers.
    
    Note:
    1 is typically treated as an ugly number.
    n does not exceed 1690.
     * */
    class Solution {
        /*
          solution 1: bruce force, TLE, Time complexity:O(nlogn), Space complexity:O(1)
        * solution 2: Min Heap, Time complexity:O(nlogn), Space complexity:O(n);
        * */
        fun nthUglyNumber(n: Int): Int {
            //solution 1
            var i = n
            var num = 1
            while (n > 0) {
                if (isUgly(num)) {
                    i--
                }
                if (i == 0) {
                    break
                }
                num++
            }
            return num
        }
    
        private fun isUgly(num_: Int): Boolean {
            var num = num_
            val factorsList = listOf(2, 3, 5)
            for (factor in factorsList) {
                while (num % factor == 0) {
                    num /= factor
                }
            }
            return num == 1
        }
    }
  • 相关阅读:
    KafKa 发消息到Storm
    HBase的优化
    HBase部署与使用
    Scala 类
    Scala高阶函数
    模式匹配
    Scala数据结构
    scala基础语法
    Scala安装配置
    Kafka工作流程分析
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/13538739.html
Copyright © 2020-2023  润新知