【算法】Nth Magical Number 第N个神奇数字

嵌入式人工智能(18-基于树莓派4B的继电器JQC-3FF-S-Z) 本次实验的输出端控制不会接强电,就用LED灯来模拟即可,由于我那个流水灯模块是低电平点亮,所以接线稍有不同,同学们注意。只有继电器吸合,输出端的NO与COM就导通,给LED低电平然后就亮,否则继电器断开,NO与COM不导通,LED不亮。原理都一样,控制电流的接通与断开,这个模块看起来还简单点,毕竟还有2个指示灯,下端IN如接上电源红灯亮,继电器动作有电流通过绿灯亮。在实际应用中,可以通过编程控制继电器的通断状态,例如在Python编程中设置继电器模块的通断时间,从而实现自动化控制。 阅读详情

【算法】Nth Magical Number 第N个神奇数字

题目

A positive integer is magical if it is divisible by either A or B.

Return the N-th magical number. Since the answer may be very large, return it modulo 10^9 + 7.

Example 1:

Input: N = 1, A = 2, B = 3
Output: 2

Example 2:

Input: N = 4, A = 2, B = 3
Output: 6

Example 3:

Input: N = 5, A = 2, B = 4
Output: 10

Example 4:

Input: N = 3, A = 6, B = 4
Output: 8

Note:

1 <= N <= 10^9
2 <= A <= 40000
2 <= B <= 40000

给出 N A B 三个数字,求出第 N 个神奇数字,神奇数字可以被 A 或者 B 整除。

解题思路

假设神奇数字时 M,则 M 是 A 的第 M / A 个倍数,M 是 B 的第 M / B 个倍数,由于 A、B 存在最小公倍数 LCM ,所以 M 即为 A 和 B 的第 M / A + M / B + M / LCM 个神奇数字。
所以思路即为:

  • 先求出最小公倍数 LCM
  • 然后二分寻找第 N 个神奇数字,以 M / A + M / B + M / LCM < N 为比较条件

代码实现

Runtime: 8 ms
Memory: 20.8 MB

// 当 N 为 1 时,返回 A B 的较小值
        if N == 1 {
            return min(A, B)
        }
        // a b tmp 用于辗转相除求最大公约数
        var a = A,b = B,tmp = 0
        while (b > 0)
        {
            tmp = a
            a = b
            b = tmp % b
        }
        // 最大公约数为 a,最小公倍数为 lcm
        let lcm = A * B / a
        // 二分搜索的左右边界
        var l = 2,r = Int(1e14)
        while (l < r)
        {
            // 中值 m
            let m = (l + r) / 2;
            // m / A + m / B - m / lcm 得出的结果为 m 是第几个神奇数字
            if m / A + m / B - m / lcm < N
            {
                l = m + 1
            }
            else
            {
                r = m
            }
        }
        return Int(l % Int(1e9 + 7))

代码地址:https://github.com/sinianshou/EGSwiftLearning

RS-485调试踩坑实录:MAX13487数据回环问题排查与修复(附电路图) 本文深入解析了RS-485通信中MAX13487芯片的数据回环问题,提供了详细的排查过程和解决方案。通过分析芯片特性和自动换向机制,揭示了RO引脚配置不当是导致问题的关键原因,并给出硬件(添加上拉电阻)和软件(调整MCU配置)两种修复方案,附有优化设计建议和实际调试技巧。 阅读详情

相关推荐

Flink实战项目——城市交通实时监控平台

本项目是与公安交通管理综合应用平台、机动车缉查布控系统等对接的,并且基于交通部门现有的数据平台上,进行的数据实时分析项目。

yangwei2048的博客 836

nth_element

将第 n(由迭代器指定)小的元素移动到正确的位置,并保证该元素左侧的所有元素都不大于它,右侧的所有元素都不小于它。是 C++ 标准库中的一个算法,用于对指定范围的元素进行部分排序。这个算法在给定范围内的元素中,它的效率在处理大型数据集时比完全排序要高,因为它只关心排在中间位置的元素。这个函数还可以自己指定谓词, 即排序规则, 用来找第n大的元素(逆向思维也可以)这个函数的时间复杂度为 O(N),其中 N 是。处的元素是整个范围中的第。中的元素重新排列,使得。处的元素为整个范围中第。

f593256的博客 2668

【车辆仿真】从0开始建立dSPACE RT Simulink工程:CAN通信(RTICANMM方法)

【工程环境信息】:本文基于链接文章搭建SCALEXIO Rack RTPC总线节点,用于与AutoBox通信硬件:上位机:惠普台式PC(Windows 11专业版)下位机(实时机):AutoBox (DS1006)板卡:DS6342软件:本文所使用的DBC链接提示:以下是本篇文章正文内容,下面案例可供参考!!!的部分一定记得配置,其他的按需配置RTICANMM的灵活度非常高,尽可能参考Help文档,理解相应的配置内容官方有RTICANMM的样例工程,在下方路径。

winnizap的博客 2381

STL nth_element排序算法

nth_element() 算法和 partial_sort() 不同。应用的范围由它的第一个和第三个参数指定。第二个参数是一个指向第 n 个元素的迭代器。如果这个范围内的元素是完全有序的,nth_dement() 的执行会导致第 n 个元素被放置在适当的位置。这个范围内,在第 n 个元素之前的元素都小于第 n 个元素,而且它后面的每个元素都会比它大。算法默认用 &lt;运算符来生成这个结果。 ...

JIWilliams 839

FortiOS路径遍历漏洞CVE-2022-41328实战复现:从环境搭建到漏洞利用全记录

本文深入解析FortiOS路径遍历漏洞CVE-2022-41328,从漏洞背景、影响范围到技术原理进行全面剖析。提供详细的漏洞复现环境搭建步骤和实战利用方法,并给出官方修复方案与临时缓解措施,帮助企业有效防御此类防火墙漏洞风险。

weixin_30485379的博客 522

C++ PCL点云处理实战专栏

工业级点云处理技术学习资源,涵盖电力、建筑、隧道等领域的实战案例。内容分为三阶段:代码原理(算法认知)、动态库(项目验证)和完整代码(定制开发)。

weixin_45196569的博客 1117

STL_算法_根据第n个元素排序(nth_element)

C++ Primer 学习中。。。   简单记录下我的学习过程 (代码为主) //所有容器适用 nth_element(b,n,e) nth_element(b,n,e,p) 对比:partition()算法 /**------http://blog.youkuaiyun.com/u010579068------**/ #include #includ

寻找&星空の孩子 1757

“详规一张图”——上海土地利用数据

本文围绕城市规划与土地管理中空间数据的重要性,介绍了基于地理信息系统(GIS)技术对上海市用地数据进行获取与处理的具体方法。文章以上海市为例,详细阐述了如何通过构建以10米为间隔的网格点覆盖全市范围,并采用GET请求方式从“上海用地规划官网:详细规划‘一张图’公众版”平台获取地块信息的过程。通过对API接口参数的设置,包括坐标系、几何类型和返回格式等,实现了对每个网格点对应地块的属性信息(如规划用地类型、容积率、地块编号等)及几何形状信息的提取。

weixin_45812624的博客 2197

STL algorithm算法nth_elements(41)

nth_element原型: std::nth_element default (1) template void nth_element (RandomAccessIterator first, RandomAccessIterator nth, RandomAccessIterator last);

roaylchen的博客 1550

【Coppeliasim|轨迹规划(三)】机械臂逆解

文章目录一些设置导航点设置添加连接用于碰撞的设置代码实现终端输出 一些设置 导航点设置 关于如何添加设置 dummy 的细节建议参考官方手册,这里不再赘述。 添加连接用于碰撞的设置 按照序号点击(一个是机械臂,一个是所有的物体除了机械臂): 代码实现 getMatrixShiftedAlongZ=function(matrix,localZShift) local m={} for i=1,12,1 do m[i]=matrix[i] end

【人工智障 | 计算鸡视觉 | 机器孩】 1万+

【学习系列】SAP RAP 18:Unmanaged场景开发示例-基本数据更新

本文介绍了在SAP RAP中unmanaged模式下从0到1的开发步骤。unmanaged模式下需要自行实现数据更新、权限检查等逻辑,适用于操作现有数据库表或复杂业务场景。文章以两层的采购订单对象为例,详细说明了创建技术对象(表、视图、行为定义等)的过程,并重点阐述了如何实现CRUD相关方法的核心逻辑。通过创建缓冲类来处理交互阶段和保存阶段的数据操作,确保事务一致性。完整代码展示了抬头层级的增删改查功能实现,为后续明细层级的开发奠定了基础。

DeveloperMrMeng的博客 637

【算法】第 n 小数 nth_element

STL 中取第 n 小数的算法 nth_element 的函数原型如下 template<class RandomAccessIterator> void nth_element(RandomAccessIterator first, RandomAccessIterator nth, RandomAccessIterator last); 算法说明: 1、功能:执行 nth_element 后,nth 所指位置的元素将是整个区间有序时在该处的元素。对 [first, nth) 中的任意迭代器 i 和 [n

Justme0的专栏,新个人主页 justme0.com 3369

2025 提高电力交易价格预测的疾风大模型方法综述

电力现货市场价格预测正转向大模型驱动的新范式。传统方法在极端波动、政策突变等场景下表现不佳,而Transformer、预训练时序模型(如Chronos-Bolt)和LLM混合框架展现出显著优势。关键技术包括多模态数据融合、两段式预训练微调、MoE架构和LLM-RAG增强解释性。案例显示,澳大利亚NSW市场误差降低43%,但混合模型路由仍必要。未来趋势涵盖数字孪生电网和多智能体竞价,需平衡模型创新与行业合规要求。大模型通过跨域学习与业务耦合提升预测,但需持续优化数据隐私、算力消耗和极端事件应对能力。

专注AI大模型,软件混淆,授权 1052

Leetcode 878. Nth Magical Number 第 N 个神奇数字(二分查找)

Leetcode 878. Nth Magical Number 第 N 个神奇数字878. Nth Magical Number 第 N 个神奇数字题目描述示例:解答代码 878. Nth Magical Number 第 N 个神奇数字 题目描述 A positive integer is magical if it is divisible by either A or B. Return ...

importsys的博客 641

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

[Swift]LeetCode878. 第 N 个神奇数字 | Nth Magical Number

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)➤GitHub地址:https://github.com/strengthen/LeetCode➤原文地址:https://www.cnblogs.com/stren...

weixin_30739595的博客 161

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

leetcode 878. Nth Magical Number | 878. 第N个神奇的数字(数学问题)

题目 https://leetcode.com/problems/nth-magical-number/ 题解 看了答案: 草稿: class Solution { public static final long MOD = 1000_000_007; public int nthMagicalNumber(int n, int a, int b) { long L = lcm(a, b); // 最小公倍数 long M = L / a + L /

寒泉 3万+

878. 第 N 个神奇数字

如果正整数可以被 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...

lmyaxx的博客 1205

878. Nth Magical Number

A positive integerismagicalif it is divisible by eitherAorB. Return theN-th magical number. Since the answer may be very large,return it modulo10^9 + 7. Example 1: Input: N = 1, A = ...

weixin_30364147的博客 95

leetcode 困难题 878. Nth Magical Number 第 N 个神奇数字-耗时100

邹九的个人博客 329

LeetCode:878. Nth Magical Number - Python

问题描述: 878. 第 N 个神奇数字 如果正整数可以被 A 或 B 整除,那么它是神奇的。 返回第 N 个神奇数字。由于答案可能非常大,返回它模 10^9 + 7 的结果。 示例 1: 输入:N = 1, A = 2, B = 3 输出:2 提示: 1 &lt;= N &lt;= 10^9 2 &lt;= A &lt;= 40000 2 &lt;= B &lt;=...

Growth Diary 1249

leetcode------878. 第 N 个神奇数字 [1]

题目链接 https://leetcode-cn.com/problems/nth-magical-number/description/ 如果正整数可以被 A 或 B 整除,那么它是神奇的。 返回第 N 个神奇数字。由于答案可能非常大,返回它模 10^9 + 7 的结果。 示例 1: 输入:N = 1, A = 2, B = 3 输出:2 示例 2: 输入:N = 4, A =...

lattice的博客 400

LeetCode878. 第 N 个神奇数字(java)

文章目录题目思路代码 题目 https://leetcode-cn.com/problems/nth-magical-number/description/ 思路 这题我首先觉得这个模的数怎么这么奇怪,然后查了一下说,这个是int里最大的质数~那么肯定和题目无关了。 如果按最简单的思路就是一个个加上去试的话目测会超时,因为如果N,A,B都取最大值,那就是要加到40000*10^9!! 先从A = ...

与望 881

【leetcode】878. Nth Magical Number

题目如下: 解题思路:本题求的是第N个Magical Number,我们可以很轻松的知道这个数的取值范围 [min(A,B), N*max(A,B)]。对于知道上下界求具体数字的题目,可以考虑用二分查找。这样题目就从找出第N个Magical Number变成判断一个数是否是第N个Magical Number。假设n是其中一个Magical Number,显然n满足 n % A == 0 或者...

weixin_33978016的博客 112

二分查找总结与最佳实践(LeetCode 975 + LeetCode 878 + LeetCode 778 )

(一) 使用场景 通常在有序的数字中,找到某个满足一定条件的数 多次问询题 需要多次遍历且数据量极大 (二)基本流程 确定边界(low, high)值 确定边界移动条件,一定只写一边移动(low=mid high=mid-1) 或者 (low=mid+1 high=mid) 循环外返回结果 (划重点) (三)简单例题 给定一个有序数组nums和一个整数target,判断target是否存...

rainMan的博客 539

排序算法

目录 1. O(N2)O(N2)O\left ( N^2 \right ) - 选择排序 - 冒泡排序 2. O(NlogN)O(Nlog⁡N)O\left (N \log N \right )(重点) - 归并排序 - 快速排序 - 堆排序 3.O(N)O(N)O \left ( N \right )(重点) - 桶排 ...

nth_element的博客 490

leetcode 878. Nth Magical Number (第N个魔法数)

给出整数a, b,找到第n个魔法数。魔法数是指能被a 或 b整除。 结果对109+7取模 思路: 比如2和3,n=4,即要找第4个魔法数 魔法数能被2或3整除,先找到2和3的倍数 2 4 6 8 10 12 3 6 9 12 15 排下序:2 3 4 6 6 8 9 10 12 12 15 可以发现,每个公倍数会出现2次,以公倍数为分界点,每两个不同的公倍数之间的数字个数是一样的 把不同的公倍数之间的数字称为一个block,那么block的长度len=lcm/2 + lcm/3 - 1 , 其中lcm是指.

蓝羽飞鸟的博客 490

算法练习之 878.第N个神奇的数字

题目原型   神奇的数字:如果正整数X可以被A或B整除,那么它是神奇的。   求:返回第N个神奇数字。由于答案可能非常大,返回它模10^9 + 7 的结果。   示例:    输入N=1, A =2, B =3; 输出:2    输入N=4, A =2, B =3; 输出:6    输入N=5, A =2, B =4; 输出:10    输入N=3, A =6, B =4; 输出:8   提示: ...

ywloveb的博客 1366
上一篇: 【算法】Self Crossing 自我相交
下一篇: 【算法】Longest Substring Without Repeating Characters 最长无重复字符子串
无良剑染
博客等级 码龄11年 3粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值