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

LeetCode 3226.使两个整数相等的位更改次数

题目

给你两个正整数 n 和 k

你可以选择 n 的 二进制表示 中任意一个值为 1 的位,并将其改为 0。

返回使得 n 等于 k 所需要的更改次数。如果无法实现,返回 -1。

思路

从集合的角度理解,每次操作相当于去掉集合 n 中的一个元素

要能把 n 变成 k,k 必须是 n 的子集。如果不是,返回 −1。

如果 k 是 n 的子集,答案为从 n 中去掉 k 后的集合大小,即 n⊕k 的二进制中的 1 的个数。

代码

class Solution {public int minChanges(int n, int k) {return (n & k) != k ? -1 : Integer.bitCount(n ^ k);}
}

性能

时间复杂度:O(1)

空间复杂度:O(1)

相关文章:

  • image: ragsaas/backend:latest 背后的 来源机制 和 可能的来源地
  • DeepSeek本地部署及WebUI可视化教程
  • PyTorch——损失函数与反向传播(8)
  • Docker快速部署AnythingLLM全攻略
  • AlexNet,VGG,Inceptions, ResNet, MobileNet对比
  • Windows提权技术完全指南:从基础到高级实战
  • Catsxp 从Edge商店安装扩展
  • 香港国际金融通道中的资金行为建模探索
  • 数据库MySQL基础(3)
  • Elasticsearch中的文档(Document)介绍
  • Android apk装机编译类型: verify、speed-profile, speed与启动耗时
  • 2025年大模型平台落地实践研究报告|附75页PDF文件下载
  • Elasticsearch索引(Index)介绍,它与数据库中的表有什么区别?
  • Cursor 工具项目构建指南: Web Vue-Element UI 环境下的 Prompt Rules 约束(new Vue 方式)
  • 浅析EXCEL自动连接PowerBI的模板
  • AI基础知识(LLM、prompt、rag、embedding、rerank、mcp、agent、多模态)
  • Spring Boot 从Socket 到Netty网络编程(上):SOCKET 基本开发(BIO)与改进(NIO)
  • OpenCV C++ 学习笔记(六):绘制文本、几何绘图、查找/绘制轮廓
  • EasyRTC嵌入式音视频通信SDK音视频功能驱动视频业务多场景应用
  • 数据标注与大模型的双向赋能:效率与性能的跃升
  • 客服外包网站/网站托管
  • 做ebay货物查找的网站/网页怎么做出来的
  • 做设计找图片的网站/网站新站整站排名
  • c 网站开发视频/单页网站排名优化
  • 手机网站营销方案/优化大师官方免费
  • 网站建设的需求方案怎么写/企业培训课程名称大全