Golang每日一练(leetDay0092) 丑数 I\II Ugly Number i\ii

news2024/11/26 10:19:23

目录

263. 丑数 Ugly Number I  🌟

264. 丑数 Ugly Number II  🌟🌟

🌟 每日一练刷题专栏 🌟

Rust每日一练 专栏

Golang每日一练 专栏

Python每日一练 专栏

C/C++每日一练 专栏

Java每日一练 专栏


263. 丑数 Ugly Number I

丑数 就是只包含质因数 23 和 5 的正整数。

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

示例 1:

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

示例 2:

输入:n = 1
输出:true
解释:1 没有质因数,因此它的全部质因数是 {2, 3, 5} 的空集。习惯上将其视作第一个丑数。

示例 3:

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

提示:

  • -2^31 <= n <= 2^31 - 1

代码:

package main

import "fmt"

func isUgly(n int) bool {
	if n <= 0 {
		return false
	}
	for _, i := range []int{2, 3, 5} {
		for n%i == 0 {
			n /= i
		}
	}
	return n == 1
}

func main() {
	fmt.Println(isUgly(6))
	fmt.Println(isUgly(1))
	fmt.Println(isUgly(14))
	for i := 1; i < 21; i++ {
		if isUgly(i) {
			fmt.Print(i, " ")
		}
	}
	fmt.Println()
}

递归写法:

package main

import "fmt"

func isUgly(n int) bool {
	if n <= 0 {
		return false
	} else if n == 1 {
		return true
	} else if n%2 == 0 {
		return isUgly(n / 2)
	} else if n%3 == 0 {
		return isUgly(n / 3)
	} else if n%5 == 0 {
		return isUgly(n / 5)
	} else {
		return false
	}
}

func main() {
	fmt.Println(isUgly(6))
	fmt.Println(isUgly(1))
	fmt.Println(isUgly(14))
	for i := 1; i <= 20; i++ {
		if isUgly(i) {
			fmt.Print(i, " ")
		}
	}
}

输出:

true
true
false 
1 2 3 4 5 6 8 9 10 12 15 16 18 20 


264. 丑数 Ugly Number II

给你一个整数 n ,请你找出并返回第 n 个 丑数 。

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

示例 1:

输入:n = 10
输出:12
解释:[1, 2, 3, 4, 5, 6, 8, 9, 10, 12] 是由前 10 个丑数组成的序列。

示例 2:

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

提示:

  • 1 <= n <= 1690

代码:

package main

import "fmt"

func nthUglyNumber(n int) int {
	nums := []int{1}
	p2, p3, p5 := 0, 0, 0
	for i := 1; i < n; i++ {
		tmp := min(nums[p2]*2, nums[p3]*3, nums[p5]*5)
		nums = append(nums, tmp)
		if nums[i] == nums[p2]*2 {
			p2++
		}
		if nums[i] == nums[p3]*3 {
			p3++
		}
		if nums[i] == nums[p5]*5 {
			p5++
		}
	}
	return nums[n-1]
}

func min(a, b, c int) int {
	if a < b {
		if a < c {
			return a
		}
	} else if b < c {
		return b
	}
	return c
}

func main() {
	fmt.Println(nthUglyNumber(10))
	fmt.Println(nthUglyNumber(1))
	for i := 1; i <= 14; i++ {
		fmt.Print(nthUglyNumber(i), " ")
	}
	fmt.Println()
}

 调用上题函数:

package main

import "fmt"

func isUgly(n int) bool {
	if n <= 0 {
		return false
	}
	for _, i := range []int{2, 3, 5} {
		for n%i == 0 {
			n /= i
		}
	}
	return n == 1
}

func nthUglyNumber(n int) int {
	count := 0
	i := 1
	for count < n {
		if isUgly(i) {
			count++
		}
		if count == n {
			return i
		}
		i++
	}
	return -1
}

func main() {
	fmt.Println(nthUglyNumber(10))
	fmt.Println(nthUglyNumber(1))
	for i := 1; i <= 14; i++ {
		fmt.Print(nthUglyNumber(i), " ")
	}
	fmt.Println()
}

输出:

12
1
1 2 3 4 5 6 8 9 10 12 15 16 18 20 


🌟 每日一练刷题专栏 🌟

持续,努力奋斗做强刷题搬运工!

👍 点赞,你的认可是我坚持的动力! 

🌟 收藏,你的青睐是我努力的方向! 

评论,你的意见是我进步的财富!  

 主页:https://hannyang.blog.csdn.net/ 

Rust每日一练 专栏

(2023.5.16~)更新中...

Golang每日一练 专栏

(2023.3.11~)更新中...

Python每日一练 专栏

(2023.2.18~2023.5.18)暂停更

C/C++每日一练 专栏

(2023.2.18~2023.5.18)暂停更

Java每日一练 专栏

(2023.3.11~2023.5.18)暂停更

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/629712.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:如何利用Python提高2022年的SEO效果

如何利用Python提高2022年的SEO效果 当谈到SEO时&#xff0c;Python已经成为了一种非常流行和有用的工具。在SEO的竞争激烈的时代&#xff0c;使用Python可帮助您找到各种创新方法来优化您的网站。在这篇文章中&#xff0c;我们将着重介绍Python的几种方法&#xff0c;来提高2…

高通开发系列 - 内核升级后音频驱动的开发和调试

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 目录 背景概述msm8909平台codec框图msm8909内部控件的关系msm8909 数字codec内部处理流程驱动和dts的匹配问题msm8909 pm8909声卡部分的DTS…

chatgpt赋能python:Python怎么倒序输出列表

Python怎么倒序输出列表 介绍 Python是一种非常流行的编程语言&#xff0c;因为它具有简单易用和开放源代码的特点。使用Python可以进行许多操作&#xff0c;包括列表处理。列表是Python中常用的数据类型之一&#xff0c;它可以存储多个值并且可以通过下标访问。本文将介绍如…

chatgpt赋能python:Python内置函数:优化你的代码

Python内置函数&#xff1a;优化你的代码 在Python中&#xff0c;内置函数是非常重要的节省时间和简化代码的方法。Python内置了许多函数&#xff0c;可以在任何地方使用。无论从哪个角度看&#xff0c;这些函数都是编程中不可或缺的工具。在本篇文章中&#xff0c;我们将介绍…

chatgpt赋能python:Python如何切换中文

Python 如何切换中文 Python 是一种广泛使用的编程语言&#xff0c;被用于多种目的&#xff0c;包括数据分析、机器学习、Web 应用程序等。在使用 Python 进行开发时&#xff0c;需要处理不同的语言&#xff0c;其中中文也是包括在内的。对于需要切换中文的情况&#xff0c;本…

【考点】CKA 05_为 Kubernetes 运行 etcd 集群 etcd 备份与恢复

etcd 备份与恢复 1. 先决条件2. 内置快照2.1 安装 etcd2.2 获取 ENDPOINT 所提供的键空间的快照到文件 snapshotdb 注意&#xff01;&#xff01;&#xff01;在 harbor 仓库中准备好升级需要的镜像控制平面节点&#xff1a;升级 kubeadm控制平面节点&#xff1a;验证升级计划控…

《设计模式》之解释器模式

文章目录 1、定义2、动机3、类结构4、优缺点5、总结6、代码实现(C) 1、定义 给定一个语言&#xff0c;定义它的文法的一种表示&#xff0c;并定义一种解释器&#xff0c;这个解释器使用该表示来解释语言中的句子。 2、动机 在软件构建过程中&#xff0c;如果某一特定领域的问…

数据结构——栈,队列和数组

文章目录 **一 栈****1 基本概念****2 栈的顺序存储结构****2.1 顺序栈的实现****2.2 顺序栈的基本运算****2.3 共享栈** **3 栈的链式存储结构** **二 队列****1 基本概念****2 队列的顺序存储结构****2.1 队列的顺序存储****2.2 循环队列****2.3 循环队列的操作** **3 队列的…

JS 怎么理解ES6新增Set、Map两种数据结构?

目录 一、前言 二、Set 1.Set数据结构定义 2.Set数据结构的特性 3.Set数据结构的基本使用 4.Set遍历数据 5.Set 的使用场景 6.WeakSet的使用 7.垃圾回收机制 三、Map 1.Map数据结构定义 2.Map数据结构的特性 3.Map数据结构的基本使用 4.Map遍历数据 5.Map的使用场…

总结895

学习目标&#xff1a; 月目标&#xff1a;6月&#xff08;线性代数强化9讲&#xff0c;背诵15篇短文&#xff0c;考研核心词过三遍&#xff09; 周目标&#xff1a;线性代数强化3讲&#xff0c;英语背3篇文章并回诵&#xff0c;检测 每日必复习&#xff08;5分钟&#xff09;…

chatgpt赋能python:Python入门到精通

Python入门到精通 Python是一门高级编程语言&#xff0c;由于其易读、易理解的语法&#xff0c;被广泛应用于数据分析、人工智能、爬虫、Web开发等领域。对于想要学习Python的人来说&#xff0c;本文提供了一个从入门到精通的学习路线。 入门级别 在Python的入门阶段&#x…

unity 建立urp项目并使用后处理技术的方法

文章目录 一、 介绍下载、安装Univarsal RP创建配置文件打开 Project Settings参数介绍在这里插入图片描述General 通用选项Quality 画面品质Lighting 灯光设置Shadow 投影 阴影Post Processing 后处理后处理的添加Advanced 高级选项 一、 介绍 Unity URP是Unity官方提供的轻量…

CKA 02_containerd部署Kubernetes 部署containerd 使用kubeadm引导集群 安装Pod网络

文章目录 1. 清空实验环境2. containerd 部署 Kubernetes2.1 部署 containerd2.1.1 安装 containerd2.1.2 配置 containerd2.1.3 前置条件2.1.4 从 Docker 命令行映射到 crictl出现的第一个 error解决方法 2.2 使用 kubeadm 引导集群2.2.1 使用 kubeadm 创建单个控制平面的 Kub…

在Linux上安装MYSQL,保姆级教程,看完不会博主吃电脑~

前言 Linux上安装软件相对windows要更要复杂一些&#xff0c;流程可能让很多人感到有些复杂。而MYSQL作为常用的数据库软件&#xff0c;又属于不得不学的那类&#xff0c;因为今天就来分享一下我安装MYSQL的简易流程&#xff0c;保证小白也能跟着操作。 这次使用的是RPM的方式…

chatgpt赋能python:Python如何制作优秀的表格以实现SEO?

Python如何制作优秀的表格以实现SEO&#xff1f; 在当今数码环境下&#xff0c;SEO已经成为了一种重要的市场推广策略。而作为一种常用的编程语言&#xff0c;Python不仅可以方便快捷地完成数据处理和分析&#xff0c;也可以用于创建各种形式的表格。本文将介绍Python如何制作…

chatgpt赋能python:Python如何全选?

Python如何全选&#xff1f; 随着Python在Web开发&#xff0c;数据科学&#xff0c;人工智能和机器学习等领域的不断普及&#xff0c;越来越多的程序员使用Python来构建各种应用程序。但是有时候在编写Python代码时&#xff0c;需要快速地全选某段代码、某个模块或某个文本编辑…

chatgpt赋能python:Python自动化:提升SEO效果的必备技能

Python自动化&#xff1a;提升SEO效果的必备技能 随着互联网的快速发展&#xff0c;SEO已经成为大多数企业网络营销的关键词。提升SEO效果需要不断地对网站进行优化&#xff0c;而网站的更新频率、文章的质量和关键词的选择都是至关重要的因素。然而&#xff0c;人工操作复杂的…

chatgpt赋能python:Python中如何创建输入框

Python中如何创建输入框 在Python中&#xff0c;用户输入是非常常见的任务。而为了进行用户输入&#xff0c;我们需要创建一个输入框。 在本文中&#xff0c;我们将探讨Python中如何创建输入框&#xff0c;并将介绍一些关于SEO的最佳实践和技巧。 创建输入框 在Python中&…

chatgpt赋能python:Python怎么全屏

Python 怎么全屏 什么是全屏 全屏指的是让软件的窗口最大化&#xff0c;占据整个屏幕的空间。这种状态下&#xff0c;用户可以更加专注于软件的内容&#xff0c;降低外界环境的干扰。 在 Python 中全屏的作用 在 Python 的开发过程中&#xff0c;全屏有助于让程序员将注意力…

【交流分享】果断抛弃layer的对话框,自己写了一个对话框,兼容Android和IOS

没有用nativeUI的对话框,因为没法自定义,样式也不好看; 后来都说推荐用layer对话框http://layer.layui.com/mobile/ 但是发觉问题还蛮多: 1.Android上确定按钮错位,得自己css调行高 2.关闭的时候,按钮的事件会穿透,得自己写延时300毫秒关闭 3.IOS上点击弹出的按钮和对话框的按钮…