LeetCode3226题. 使两个整数相等的位更改次数解法二(原创)

我之前文章LeetCode3226题. 使两个整数相等的位更改次数(原创)-CSDN博客对于LeetCode第3226题中给出了解法,后来思考了一下可以用位操作来完成更简洁优雅的实现:

  1. 首先计算n和k的异或值m.m中的所有位数中为1的值就是n中为1k中为0,或者n中为0k中为1;
  2. m&n的结果如果不等于m,那么说明存在n中为0k中为1的情况,那么上文分析的分析,n不可能变换成k,直接返回-1;
  3. 否则说明m里面所有位数为1的值都是n中为1k中为0的情况,那么直接计算返回m中位数为1的数值即可
  4. 计算m中位数为1的数值方法采用经典的减一循环法

按照此思路完成如下代码优化编写

public int minChanges(int n, int k) {// 计算n和k异或值m,m中的所有位数中为1的值就是n中为1k中为0,或者n中为0k中为1int m = (n ^ k);// m&n的结果如果不等于m,那么说明存在n中为0k中为1的情况,n不可能变换成k,直接返回-1if ((m & n) != m) return -1;// m里面所有位数为1的值都是n中为1k中为0的情况,那么直接计算返回m中位数为1的数值即可int count = 0;while (m != 0) {count++;m = m & (m - 1);}return count;
}

最后成功提交leetcode

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/265.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Linux:权限的深度解析(进阶)

文章目录 前言一、知识点1. 只有权限的拥有者或root,有权修改自己的权限2. Linux一个文件可执行 这个文件真的能执行 可执行权限3. 身份对比的时候,只依次在user, group, other中比对一次4. 权限的八进制表示与修改🤩🤩&#x1…

网络编程(Day35)

一、学习内容 ip地址的网络字节序转换 函数原型 in_addr_t inet_addr(const char *cp); 返回值 in_addr_t:一个 uint32 数据,该数据是结构体struct in_addr {in_addr_t s_addr;};struct in_addr 是结构体 struct sockaddr_in 中的一个数据 参数描述 参…

Rust 力扣 - 1652. 拆炸弹

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 我们只需要遍历长度长度为k的窗口&#xff0c;然后把窗口内数字之和填充到结果数组中的对应位置即可 题解代码 impl Solution {pub fn decrypt(code: Vec<i32>, k: i32) -> Vec<i32> {let n c…

【开源免费】基于SpringBoot+Vue.J服装商城系统(JAVA毕业设计)

本文项目编号 T 046 &#xff0c;文末自助获取源码 \color{red}{T046&#xff0c;文末自助获取源码} T046&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 新…

AI虚拟主播实时互动模块的搭建与开发!

AI虚拟主播&#xff0c;作为新兴的数字媒体形式&#xff0c;正在逐步改变我们的娱乐和信息获取方式&#xff0c;它们不仅拥有栩栩如生的外貌&#xff0c;还能通过实时互动模块与用户进行流畅的对话&#xff0c;极大地提升了用户体验。 本文将详细介绍AI虚拟主播实时互动模块的…

STM32之看门狗

STM32有独立看门狗&#xff08;IWDG&#xff09;和窗口看门狗(WWDG)。 采用窗口看门狗&#xff08;WWDG&#xff09;&#xff0c;有一个死前中断&#xff0c;可以用来作一个报警的功能。 独立看门狗超时时间计算公式 假设LSI是32KHz,超时时间等于 预分频系数&#xff08;4&…

uni-app 运行HarmonyOS项目

1. uni-app 运行HarmonyOS项目 文档中心 1.1. HarmonyOS端 1.1.1. 准备工作 &#xff08;1&#xff09;下载DevEco Studio开发工具。   &#xff08;2&#xff09;在 DevEco Studio 中打开任意一个项目&#xff08;也可以新建一个空项目&#xff09;。   &#xff08;3&…

巨好看的登录注册界面源码

展示效果 源码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name"viewport" content"widthdevic…

阿里云docker安装禅道记录

docker network ls docker network create -d bridge cl_network sudo docker run --name zentao --restart always -p 9982:80 --networkcl_network -v /data/zentao:/data -e MYSQL_INTERNALtrue -d hub.zentao.net/app/zentao:18.5 参考&#xff1a;用docker安装禅道…

c++联合

结构体与联合体的区别 结构体(struct)中所有变量是“共存”的——优点是“有容乃大”&#xff0c;全面&#xff1b;缺点是struct内存空间的分配是粗放的&#xff0c;不管用不用&#xff0c;全分配。 而联合体(union)中是各变量是“互斥”的——缺点就是不够“包容”&#xff…

XSS-libs

靶场下载地址&#xff1a;https://github.com/do0dl3/xss-labs 下载完成后解压到phpstudy的根目录下&#xff0c;访问就可以 第一关 参数name 存在alert函数&#xff0c;插入&#xff1a;<script>alert(1)</script>&#xff0c;会调用该函数&#xff0c;然后就会返…

人脑与机器连接:神经科技的伦理边界探讨

内容概要 在当今科技飞速发展的时代&#xff0c;人脑与机器连接已成为一个引人注目的前沿领域。在这一背景下&#xff0c;神经科技的探索为我们打开了一个全新的世界&#xff0c;从脑机接口到人工智能的飞跃应用&#xff0c;不仅加速了技术的进步&#xff0c;更触动了我们内心…

基于向量检索的RAG大模型

一、什么是向量 向量是一种有大小和方向的数学对象。它可以表示为从一个点到另一个点的有向线段。例如&#xff0c;二维空间中的向量可以表示为 (&#x1d465;,&#x1d466;) &#xff0c;表示从原点 (0,0)到点 (&#x1d465;,&#x1d466;)的有向线段。 1.1、文本向量 1…

数字媒体技术基础:AMF(ACES 元数据文件 )

在现代电影和电视制作中&#xff0c;色彩管理变得越来越重要。ACES&#xff08;Academy Color Encoding System&#xff0c;美国电影艺术与科学学院颜色编码系统&#xff09;是一个广泛采用的色彩管理和交换系统&#xff0c;旨在解决不同设备、软件和工作流程之间的色彩不一致问…

k8s环境下rabbitmq安装社区插件:rabbitmq_delayed_message_exchange

怎么在k8s环境下的rabbitmq安装社区版插件:rabbitmq_delayed_message_exchange 在你的rabbit-value.yaml中加入以下行&#xff0c;然后使用helm重新安装&#xff08;最好把pvc也删了重新安装&#xff08;如果你的密码变化了的话&#xff09; 减少出错概率&#xff09; ## par…

C++ | Leetcode C++题解之第526题优美的排列

题目&#xff1a; 题解&#xff1a; class Solution { public:int countArrangement(int n) {vector<int> f(1 << n);f[0] 1;for (int mask 1; mask < (1 << n); mask) {int num __builtin_popcount(mask);for (int i 0; i < n; i) {if (mask &am…

Blender进阶:贴图与UV

9 UV 9.1 贴图与UV UV&#xff0c;指定每个面顶点在贴图上的坐标 演示&#xff1a; 1、添加物体 2、添加贴图&#xff0c;即图片纹理节点 3、进入UV Edit工作区 4、右边&#xff0c;选择一个面 5、左边&#xff0c;选择一个面&#xff0c;移动这个面 9.2 电子表格 电子…

vue项目安装组件失败解决方法

1.vue项目 npm install 失败 删除node_modules文件夹、package-lock.json 关掉安装对话框 重新打开对话框 npm install

uniapp ,微信小程序,滚动(下滑,上拉)到底部加载下一页内容

前言 小程序的内容基本都是滑动到底部加载下一页&#xff0c;这个一般都没有什么好用的组件来用&#xff0c;我看vant和uniapp的插件里最多只有个分页&#xff0c;没有滚动到底部加载下一页。再次做个记录。 效果预览 下滑到底部若是有下一页&#xff0c;则会自动加载下一页&…

分布式光伏系统管理捷径——借助专业软件

在当前信息化时代&#xff0c;管理软件已经成为了各行各业中不可或缺的工具&#xff0c;光伏行业亦是如此。使用专业管理软件&#xff0c;可以帮助光伏企业实现高效管理、提高工作效率的同时降低成本&#xff0c;进而提升竞争力。本文将以客户反映较好的鹧鸪云光伏光伏与储能管…