LeetCode 878. 第 N 个神奇数字(二分查找)
文章目录
- 1. 题目
- 2. 解题
1. 题目
如果正整数可以被 A 或 B 整除,那么它是神奇的。
返回第 N 个神奇数字。由于答案可能非常大,返回它模 10^9 + 7 的结果。
示例 1:
输入:N = 1, A = 2, B = 3
输出:2示例 2:
输入:N = 4, A = 2, B = 3
输出:6示例 3:
输入:N = 5, A = 2, B = 4
输出:10示例 4:
输入:N = 3, A = 6, B = 4
输出:8提示:
1 <= N <= 10^9
2 <= A <= 40000
2 <= B <= 40000
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/nth-magical-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
类似题目:
- 丑数系列
class Solution {public:int lcmab;//最小公倍数int nthMagicalNumber(int N, int A, int B) {long long lo = 2, hi = 1e15, ans, mid, mod = 1e9+7, num;lcmab = A/__gcd(A,B)*B;// 最小公倍数 = A*B/最大公约数(A,B)while(lo <= hi) {mid = lo+((hi-lo)>>1);num = ct(mid,A,B);// mid 包含多少个 神奇数字if(num >= N){ans = mid;hi = mid-1;}elselo = mid+1;}return ans%mod;}long long ct(long long n, int A, int B) {return n/A + n/B - n/lcmab;}
};
4 ms 5.9 MB C++
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
LeetCode 878. 第 N 个神奇数字(二分查找)相关推荐
- 【每日一题Day35】LC878第N个神奇数字 | 二分查找 找规律 + 数学
第N个神奇数字[LC878] 一个正整数如果能被 a 或 b 整除,那么它是神奇的. 给定三个整数 n , a , b ,返回第 n 个神奇的数字.因为答案可能很大,所以返回答案 对 109 + 7 ...
- 878. 第 N 个神奇数字 数学+二分
878. 第 N 个神奇数字 一个正整数如果能被 a 或 b 整除,那么它是神奇的. 给定三个整数 n , a , b ,返回第 n 个神奇的数字.因为答案可能很大,所以返回答案 对 109 + 7 ...
- 878. 第 N 个神奇数字(二分查找+数学)| 1819. 序列中不同最大公约数的数目(枚举+数学)
878. 第 N 个神奇数字 一个正整数如果能被 a 或 b 整除,那么它是神奇的. 给定三个整数 n , a , b ,返回第 n 个神奇的数字.因为答案可能很大,所以返回答案 对 109 + 7 ...
- LeetCode 1231. 分享巧克力(极小极大化 二分查找)
文章目录 1. 题目 2. 解题 1. 题目 你有一大块巧克力,它由一些甜度不完全相同的小块组成.我们用数组 sweetness 来表示每一小块的甜度. 你打算和 K 名朋友一起分享这块巧克力,所以你 ...
- 【LeetCode】878. 第 N 个神奇数字
题目描述 一个正整数如果能被 a 或 b 整除,那么它是神奇的. 给定三个整数 n , a , b ,返回第 n 个神奇的数字.因为答案可能很大,所以返回答案 对 109 + 7 取模 后的值. 示例 ...
- 力扣每日一题:878. 第 N 个神奇数字【二分法】
一个正整数如果能被 a 或 b 整除,那么它是神奇的. 给定三个整数 n , a , b ,返回第 n 个神奇的数字.因为答案可能很大,所以返回答案 对 109 + 7 取模 后的值. 示例 1: 输 ...
- LeetCode 483. 最小好进制(二分查找)
文章目录 1. 题目 2. 解题 1. 题目 对于给定的整数 n, 如果 n 的 k(k>=2)进制数的所有数位全为1,则称 k(k>=2)是 n 的一个好进制. 以字符串的形式给出 n, ...
- LeetCode:数组(排列组合,二分查找I,二分查找II)
1,排列组合 38,剑指Offer:字符串的排列 题目:输入一个字符串,打印出该字符串中字符的所有排列.你可以以任意顺序返回这个字符串数组,但里面不能有重复元素. class Solution {Li ...
- LeetCode LCP 28. 采购方案(排序 + 二分查找)
文章目录 1. 题目 2. 解题 1. 题目 小力将 N 个零件的报价存于数组 nums. 小力预算为 target,假定小力仅购买两个零件,要求购买零件的花费不超过预算,请问他有多少种采购方案. 注 ...
最新文章
- 职称计算机证是继续教育的内容吗,豆腐网教你一分钟弄懂继续教育学时认定表及上传注意事项~...
- javaweb实现mysql备份功能_java web 实现mysql 数据库备份、恢复
- Spring Boot 搭建 ELK,这才是正确看日志的方式!
- 程序员因中年危机从北京回老家事业单位:工资从60万爆降到6万
- 智源青年科学家黄高:面向高效推理的深度网络结构设计
- tensorflow之transpose的使用
- Android自定义顶部栏及侧滑菜单和fragment+viewpag滑动切换的实现
- 个人管理 - 程序员的四个阶段
- TMS320F28335的SCI通信-FIFO中断通信实验
- 你认为已经过时的C语言,是如何影响500万程序员的?...
- 云有约 | 在去O的道路上,AWS表示:经验可复制,惊喜并非只属于我们!
- 25 The Go image/draw package go图片/描绘包:图片/描绘包的基本原理
- 通过try、except和else的使用来使Python程序更加“强壮”
- Xshell使用教程(不断总结...)
- 冰点还原精灵如何安装
- Java基于POI来给导出的Excel动态添加水印
- 华为商城抢购插件_有赞商城社群接龙全面上线,社群营销玩法升级
- 小学生期末评语经典大全
- 110配线架打法图解_110配线架怎么安装
- Android实战——RecyclerView条目曝光埋点