当前位置: 首页 > news >正文

【LeetCode - 每日1题】最少操作使num1归零

🌈 个人主页:(时光煮雨)
🔥 高质量专栏:vulnhub靶机渗透测试
👈 希望得到您的订阅和支持~
💡 创作高质量博文(平均质量分95+),分享更多关于网络安全、Python领域的优质内容!(希望得到您的关注~)


🌵目录🌵

  • 难度 ⭐⭐⭐
  • ✅ 题目回顾
  • ✅ 示例分析
    • ✅ 示例1
    • ✅ 示例2
  • ✅ 解题思路
    • 🍒核心逻辑
    • 🍓关键创新点
  • ✅ 代码实现
  • ✅ 代码说明
  • ✅ 复杂度分析
  • ✅ 测试用例验证
    • ✅ 示例1
    • ✅ 示例2
    • ✅ 边缘用例
  • ✅ 总结
  • 🤝 期待与你共同进步
  • 📚 参考文档


难度 ⭐⭐⭐


✅ 题目回顾

​​任务目标​​:
给定两个整数 num1和 num2,每次操作选择一个整数 i(0 ≤ i≤ 60),将 num1减去 (2^i + num2)。计算使 num1变为 0 的最少操作次数,若无法实现则返回 -1。


✅ 示例分析

✅ 示例1

​​输入​​:num1 = 3, num2 = -2
​​输出​​:3
​​解释​​:
通过 3 次操作将 num1变为 0:

  1. 选 i=2:3 - (4 + (-2)) = 1
  2. 选 i=2:1 - (4 + (-2)) = -1
  3. 选 i=0:-1 - (1 + (-2)) = 0

✅ 示例2

​​输入​​:num1 = 5, num2 = 7
​​输出​​:-1
​​解释​​:
无论选择何种 i,都无法将 5变为 0。


✅ 解题思路

🍒核心逻辑

在这里插入图片描述

🍓关键创新点

  • ​​二进制特性利用​​:通过 x的二进制中 1 的个数确定最小拆分项数,再通过幂次拆分调整项数至 k。
  • ​​高效枚举策略​​:使用无限枚举但实际在有限步内终止(理论证明 k上限为 O(log(num1)))。

✅ 代码实现

from itertools import countclass Solution:def makeTheIntegerZero(self, num1: int
http://www.xdnf.cn/news/1466641.html

相关文章:

  • Bean作用域和生命周期
  • Golang中的context包介绍及源码阅读
  • 谙流 ASK 技术解析(一):秒级扩容
  • Android,jetpack Compose模仿QQ侧边栏
  • 华为云昇腾云服务
  • 数据安全成焦点:基于Hadoop+Spark的信用卡诈骗分析系统实战教程
  • 为什么外网主机可以telnet通内网nginx端口,但是http请求失败?
  • Mysql:由逗号分隔的id组成的varchar联表替换成对应文字
  • Tenda AC20路由器缓冲区溢出漏洞分析
  • iOS 抓包工具有哪些?开发、测试与安全场景的实战选择
  • 软考 系统架构设计师系列知识点之杂项集萃(140)
  • 使用 chromedp 高效爬取 Bing 搜索结果
  • 安装Codex(需要用npm)
  • Chrome 插件开发入门指南:从基础到实践
  • 达梦数据守护集群监视器详解与应用指南
  • vsan高可用:确保可访问性、全部数据迁移,两种类型权衡
  • 软件启动时加配置文件 vs 不加配置文件
  • Go 1.25.1基本包
  • 凌力尔特(LINEAR)滤波器LTC1068的二阶滤波器模块设计
  • STM32 USBx Device HID standalone 移植示例 LAT1466
  • 全球企业内容管理ECM市场规模增长趋势与未来机遇解析
  • (4)什么时候引入Seata‘‘
  • 黄金上门回收小程序开发
  • 多路转接介绍及代码实现
  • Rust 基础语法
  • 设计模式笔记
  • 从技术选型到现场配置:DDC 楼宇自控系统全流程落地方案(2025 版)
  • 织信低代码:用更聪明的方式,把想法变成现实!
  • 多语言Qt Linguist
  • 职场礼仪实训室:健康管理专业人才培养的核心支柱与创新实践