leetcode1201. 丑数 III -medium

article/2025/7/15 19:25:47

1 题目:1201. 丑数 III.

官方标定难度:中

丑数是可以被 a 或 b 或 c 整除的 正整数 。

给你四个整数:n 、a 、b 、c ,请你设计一个算法来找出第 n 个丑数。

示例 1:

输入:n = 3, a = 2, b = 3, c = 5
输出:4
解释:丑数序列为 2, 3, 4, 5, 6, 8, 9, 10… 其中第 3 个是 4。

示例 2:

输入:n = 4, a = 2, b = 3, c = 4
输出:6
解释:丑数序列为 2, 3, 4, 6, 8, 9, 10, 12… 其中第 4 个是 6。

示例 3:

输入:n = 5, a = 2, b = 11, c = 13
输出:10
解释:丑数序列为 2, 4, 6, 8, 10, 11, 12, 13… 其中第 5 个是 10。

提示:

1 < = n , a , b , c < = 10 9 1 <= n, a, b, c <= 10^9 1<=n,a,b,c<=109
1 < = a ∗ b ∗ c < = 10 18 1 <= a * b * c <= 10^{18} 1<=abc<=1018
本题结果在 [ 1 , 2 ∗ 10 9 ] [1, 2 * 10^9] [1,2109] 的范围内

2 solution

本题数据规模很大,缺乏高效的递推公式,但是答案又是要验证的而且具有连续性,所以可以用二分法。

代码

class Solution {/** 二分法*/long long gcd(long long x, long long y) {if (y == 0) return x;return gcd(y, x % y);}public:int nthUglyNumber(int n, int a, int b, int c) {long long l = 1, r = 2e9;long long ab = 1ll * a * b / gcd(a, b);long long ac = 1ll * a * c / gcd(a, c);long long bc = 1ll * b * c / gcd(b, c);long long abc = 1ll * ab / gcd(ab, bc) * bc ;while (l < r) {long long mid = (l + r) >> 1;long long m = mid / a + mid / b + mid / c - mid / ab - mid / bc - mid / ac + mid / abc;if(m >= n) r = mid;else l = mid + 1;}return r;}
};

结果

在这里插入图片描述


http://www.hkcw.cn/article/LxfurRCRTX.shtml

相关文章

【Oracle】DML语言

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. DML概述1.1 什么是DML&#xff1f;1.2 DML的核心功能 2. INSERT语句详解2.1 基础插入操作2.2 子查询插入2.3 多表插入2.4 批量插入优化 3. UPDATE语句详解3.1 基础更新操作3.2 关联更新3.3 批量更新优化 4. …

安装启动Mosquitto以及问题error: cjson/cJSON.h: No such file or directory解决

安装Mosquitto 在官方下载地址&#xff1a;https://mosquitto.org/files/source/ 选择版本下载 安装环境是linux centos7&#xff0c;上传 mosquitto-2.0.18.tar.gz 文件到 /mqtt 文件夹下 tar -xvf mosquitto-2.0.18.tar.gz #解压 cd mosquitto-2.0.18/ #切换到解压目录下…

附件上传唯一性校验

1. Overridepublic String uploadFile(MultipartFile file, String id, String funNo, String ctType) {//TODO 附件重复判断// 计算文件哈希值// 将MultipartFile转换为临时File对象String fileHash "";try {File tempFile convertMultipartFileToFile(file);// …

正点原子AU15开发板!板载40G QSFP、PCIe3.0x8和FMC LPC等接口,性能强悍!

正点原子AU15开发板&#xff01;板载40G QSFP、PCIe3.0x8和FMC LPC等接口&#xff0c;性能强悍&#xff01; 正点原子AU15开发板搭载Xilinx Artix UltraScale 系列FPGA&#xff0c;核心板主控芯片的型号是XCAU15P-FFVB676-2I。开发板由核心板&#xff0b;底板组成&#xff0c;外…

Attention-> flashAttention材料参考

1、 一文看懂 Attention&#xff08;本质原理3大优点5大类型&#xff09;_attention结构-CSDN博客2​​​​​​​2https://blog.csdn.net/haima1998/article/details/107845549 2、 一文看懂 NLP 里的模型框架 Encoder-Decoder 和 Seq2Seq (easyai.tech) 3、 详解深度学习…

MySQL高可用集群

https://dev.mysql.com/doc/mysql-shell/8.4/en/mysql-innodb-cluster.html 1 什么是MySQL高可用集群 MySQL高可用集群&#xff1a;MySQL InnoDB ClusterInnoDB Cluster是MySQL官方实现高可用读写分离的架构方案&#xff0c;包含以下组件 MySQL Group Replication&#xff1a;简…

山洪灾害声光电监测预警解决方案

一、方案背景 我国是一个多山的国家&#xff0c;山丘区面积约占国土面积的三分之二。每年汛期&#xff0c;受暴雨等因素影响&#xff0c;极易引发山洪和泥石流。山洪、泥石流地质灾害具有突发性、流速快、流量大、物质容量大和破坏力强等特点&#xff0c;一旦发生&#xff0c;将…

2025年最新工程项目管理系统应该具备哪些模块?

随着数字化转型浪潮席卷工程行业&#xff0c;工程项目管理系统的作用愈发凸显。2025年&#xff0c;工程项目管理系统的核心目标不仅是提升项目效率&#xff0c;更在于通过智能化、集成化技术实现全生命周期的精细化管理。基于行业趋势和企业实际需求&#xff0c;结合金众诚工程…

unity入门:同一文本不同颜色显示

unity入门&#xff1a;同一文本不同颜色显示 同一文本不同颜色显示#RRGGBBAA&#xff08;带透明度&#xff09;用法 同一文本不同颜色显示 在Unity中&#xff0c;如果想让文本中的某一部分显示不同的颜色&#xff0c;可以使用富文本(Rich Text)标记&#xff0c;在字符串中插入…

128、STM32H723ZGT6实现串口IAP

Bootloader程序通过串口接收*.bin文件数据&#xff0c;写入到内部flash区域&#xff0c;然后跳转APP应用程序 flash读写数据参考我的博客&#xff1a;127、stm32h743XI内部flash 注意&#xff1a;H723系列flash必须32字节写入&#xff0c;并且擦除时别重启|断电&#xff0c;不然…

【Netty系列】Reactor 模式 2

目录 流程图说明 关键流程 以下是 Reactor 模式流程图&#xff0c;结合 Netty 的主从多线程模型&#xff0c;帮助你直观理解事件驱动和线程分工&#xff1a; 流程图说明 Clients&#xff08;客户端&#xff09; 多个客户端&#xff08;Client 1~N&#xff09;向服务端发起连…

接口自动化测试用例的编写方法

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 phpunit 接口自动化测试系列 Post接口自动化测试用例 Post方式的接口是上传接口&#xff0c;需要对接口头部进行封装&#xff0c;所以没有办法在浏览器下直接调…

2025030给荣品PRO-RK3566开发板单独升级Android13的boot.img

./build.sh init ./build.sh -K ./build.sh kernel 【导入配置文件】 Z:\Android13.0\rockdev\Image-rk3566_t\config.cfg 【更新的内核】 Z:\Android13.0\rockdev\Image-rk3566_t\boot.img 【导入分区表&#xff0c;使用原始的config.cfg会出错的^_】 Z:\Android13.0\rockdev\…

伊拉克军方打死6名“伊斯兰国”武装分子

△伊拉克联合行动指挥部发布视频截图当地时间5月30日,伊拉克联合行动指挥部下属安全媒体中心发表声明称,29日晚至30日早间,伊军方出动战机对位于该国北部萨拉赫丁省沙伊谷地的极端组织“伊斯兰国”武装分子藏匿点发动空袭,打死了6名武装分子,并摧毁其藏匿点。(总台记者 米…

Python打卡训练营Day40

DAY 40 训练和测试的规范写法 知识点回顾&#xff1a; 彩色和灰度图片测试和训练的规范写法&#xff1a;封装在函数中展平操作&#xff1a;除第一个维度batchsize外全部展平dropout操作&#xff1a;训练阶段随机丢弃神经元&#xff0c;测试阶段eval模式关闭dropout 作业&#x…

Haproxy搭建web群集

目录 一&#xff1a;Haproxy 1.Haproxy常见的调度算法 二&#xff1a;环境案例 1.配置web主机 2.配置haproxy主机 3.Haproxy日志 一&#xff1a;Haproxy Haproxy 是目前比较流行的一种群集调度工具&#xff0c;同类群集调度工具有很多,如 LVS 和 Nginx。相比较而言&#…

ansible自动化playbook简单实践

方法一&#xff1a;部分使用ansible 基于现有的nginx配置文件&#xff0c;定制部署nginx软件&#xff0c;将我们的知识进行整合 定制要求&#xff1a; 启动用户&#xff1a;nginx-test&#xff0c;uid是82&#xff0c;系统用户&#xff0c;不能登录 启动端口82 web项目根目录/…

一句话开发Chrome摸鱼插件

本文所使用的 CodeBuddy 免费下载链接&#xff1a;腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴&#xfeff;。 CodeBuddy 一、CodeBuddy新功能特色 Craft智能体&#xff1a;自然语言驱动的全栈开发引擎Craft开发智能体的核心突破在于实现需求理解-任务拆解-代码生成的…

2024PLM系统实施案例:天水天轲零部件

一、行业背景与中小企业的现实挑战 汽车零部件行业竞争激烈&#xff0c;中小企业普遍面临研发周期长、数据管理混乱、供应链协同效率低等问题。天水天轲零部件作为一家年产值约700万元的小型制造企业&#xff0c;其痛点具有行业典型性&#xff1a; 研发数据分散&#xff1a…

Linux(8)——进程(控制篇——上)

目录 ​编辑 一、进程创建 1.fork函数的回顾 2.fork的返回值 3.写时拷贝 4.fork的常规用法 5.fork调用失败的原因 二、进程终止 1.进程退出的场景 2.进程常见的退出方法 3.进程退出码 4.进程正常退出 1&#xff09;_exit函数 2&#xff09;exit函数 3&#xff…