做系统下载网站建设,网站开发 php,国外网站ip地址,2017自己做网站的趋势1. 使两个整数相等的位更改次数
3226. 使两个整数相等的位更改次数
给你两个正整数 n 和 k。
你可以选择 n 的 二进制表示 中任意一个值为 1 的位#xff0c;并将其改为 0。
返回使得 n 等于 k 所需要的更改次数。如果无法实现#xff0c;返回 -1。
class Solution {pub… 1. 使两个整数相等的位更改次数
3226. 使两个整数相等的位更改次数
给你两个正整数 n 和 k。
你可以选择 n 的 二进制表示 中任意一个值为 1 的位并将其改为 0。
返回使得 n 等于 k 所需要的更改次数。如果无法实现返回 -1。
class Solution {public int minChanges(int n, int k) {// a ^ b 异或操作// a b 按位相与的操作// 思路一如果n与k的安按位结果不等于 k,说明k存在某一位为1而n对应的位为0此时无法让n转变为kif((n k ) ! k) return -1;// 说明可以转化那找到 n 与 k 相异的位即可有多少位就要转化几次// 可以使用 java中的bitCount() 来找到二进制中 1 的个数return Integer.bitCount(n ^ k);}
}