Leetcode—2749. 得到整数零需要执行的最少操作数【中等】(__builtin_popcountl)

2025每日刷题(231)

Leetcode---2749. 得到整数零需要执行的最少操作数

实现代码

cpp 复制代码
class Solution {
public:
    int makeTheIntegerZero(int num1, int num2) {
        for(long opt = 0; opt <= 60; ++opt) {
            const long target = num1 - num2 * opt;
            // __builtin_popcountl(target) 返回 target 的 汉明重量,即 target 二进制表示中 1 的个数。
            // target 不能是负数(否则已经把 num1 减过头了);
            // 用恰好 ops 个 2^i 相加得到 target 时,必须有 target 至少为 ops,因为每个 2^i ≥ 1,ops 个这样的数相加的最小和是 ops(全取 2^0 = 1)。
            /*
            若只检查 popcount(target) <= ops 而不检查 ops <= target:
比如 target = 1, ops = 2。
popcount(1) = 1 <= 2 成立,但不可能用两项正的 2^i 凑出 1(最小也得是 1+1=2)。ops <= target 能正确排除这类情况。

若 target < 0:
明显无解(已经把 num1 减过头了)。ops <= target 也会直接判假(因为 ops >= 0),从而排除负数情况。*/
            if(__builtin_popcountl(target) <= opt && target >= opt) {
                return opt;
            }
        }
        return -1;
    }
};

运行结果

之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

相关推荐
im_AMBER几秒前
Leetcode 68 搜索插入位置 | 寻找比目标字母大的最小字母
数据结构·笔记·学习·算法·leetcode
严文文-Chris2 分钟前
【非监督学习常见算法】
学习·算法·机器学习
CoderYanger4 分钟前
动态规划算法-斐波那契数列模型:1.第N个泰波那契数
开发语言·算法·leetcode·动态规划·1024程序员节
红队it6 分钟前
【机器学习】python旅游数据分析可视化协同过滤算法推荐系统(完整系统源码+数据库+开发笔记+详细部署教程)✅
python·mysql·算法·机器学习·数据分析·旅游
我太想进步了C~~7 分钟前
Prompt Design(提示词工程)入门级了解
前端·人工智能·算法
LaughingZhu8 分钟前
Product Hunt 每日热榜 | 2025-12-04
人工智能·经验分享·深度学习·神经网络·产品运营
zore_c8 分钟前
【C语言】文件操作详解2(文件的顺序读写操作)
android·c语言·开发语言·数据结构·笔记·算法·缓存
狐579 分钟前
2025-12-03-LeetCode刷题笔记-3625-统计梯形的数目-II
笔记·leetcode
大袁同学9 分钟前
【C++完结篇】:深入“次要”但关键的知识腹地
开发语言·数据结构·c++·算法
少许极端11 分钟前
算法奇妙屋(十六)-BFS解决边权为1的多源最短路径问题
算法·bfs·队列·图解算法·边权为1的多源最短路径问题·宽度优先遍历