C++硬解,位运算的一个题目

class Solution {public:int minimizeXor(int num1, int num2) {//把num1转换为2进制字符串,从低位到高位,统计1的个数string s1 = "";int c1 = 0;while(num1){if(num1 % 2 == 1){s1 += '1';c1++;}elses1 += '0';num1 /= 2;}//把num2转换为2进制字符串,从低位到高位,统计1的个数string s2 = "";int c2 = 0;while(num2){if(num2 % 2 == 1){s2 += '1';c2++;}elses2 += '0';num2 /= 2;}//结果的二进制字符串,这里要注意字符串s长度应为s1和s2中最大的长度string s = "";int size = s1.size();if(s2.size() > s1.size())size = s2.size();for(int i = 0; i < size; i++){if(i < s1.size() && s1[i] == '1')s += '1';elses += '0';}//如果s1中1多if(c1 > c2){int c = c1 - c2;for(int i = 0; i < s.size(); i++){if(s[i] == '1'){s[i] = '0';c--;if(c == 0)break;}}}else if(c1 < c2) //如果s2中1多{int c = c2 - c1;for(int i = 0; i < s.size(); i++){if(s[i] == '0'){s[i] = '1';c--;if(c == 0)break;}}}int res = 0;int p = 0;for(int i = 0; i < s.size(); i++){if(i == 0)p = 1;elsep *= 2;if(s[i] == '1')res += p;}return res;}
};

LeetCode 6194. 最小 XOR相关推荐

  1. LeetCode 421. Maximum XOR of Two Numbers in an Array--Python解法

    LeetCode 421. Maximum XOR of Two Numbers in an Array–C++,Python解法 LeetCode题解专栏:LeetCode题解 我做的所有的Leet ...

  2. leetcode 64. 最小路径和(递归 / 动态规划解法图解)(Java版)

    题目 leetcode 64. 最小路径和 提示: m == grid.length n == grid[i].length 1 <= m, n <= 200 0 <= grid[i ...

  3. LeetCode 1631. 最小体力消耗路径(DFS + 二分查找)

    文章目录 1. 题目 2. 解题 1. 题目 你准备参加一场远足活动.给你一个二维 rows x columns 的地图 heights ,其中 heights[row][col] 表示格子 (row ...

  4. leetcode 810. Chalkboard XOR Game

    leetcode 810. Chalkboard XOR Game 原题地址:https://leetcode.com/problems/chalkboard-xor-game/ 题目 We are ...

  5. LeetCode 64最小路径和65有效数字66加一

    原创公众号:bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 关注后回复进群即可加入力扣打卡群,欢迎划水.近期打卡: LeetCode打卡 52八皇后Ⅱ&53最大子序和& ...

  6. leetcode 421. Maximum XOR of Two Numbers in an Array | 421. 数组中两个数的最大异或值(位运算,Trie前缀树)

    题目 https://leetcode.com/problems/maximum-xor-of-two-numbers-in-an-array/ 题解 自己没有思路,看了答案之后自己写的. 参考:Py ...

  7. LeetCode 1981. 最小化目标值与所选元素的差(DP)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个大小为 m x n 的整数矩阵 mat 和一个整数 target . 从矩阵的 每一行 中选择一个整数,你的目标是 最小化 所有选中元素之 和 与 ...

  8. LeetCode 1942. 最小未被占据椅子的编号(set)

    文章目录 1. 题目 2. 解题 1. 题目 有 n 个朋友在举办一个派对,这些朋友从 0 到 n - 1 编号. 派对里有 无数 张椅子,编号为 0 到 infinity . 当一个朋友到达派对时, ...

  9. LeetCode 483. 最小好进制(二分查找)

    文章目录 1. 题目 2. 解题 1. 题目 对于给定的整数 n, 如果 n 的 k(k>=2)进制数的所有数位全为1,则称 k(k>=2)是 n 的一个好进制. 以字符串的形式给出 n, ...

最新文章

  1. ASP.NET处理架构
  2. 7系统启动到一半停止_太突然!国际饮料巨头计划狂砍一半品牌,这些饮料就快喝不到了…...
  3. VC程序初始化隐藏窗体
  4. 在用的虚拟服务器减少内存,降低虚拟服务器内存使用率
  5. 纠正一个错误,分布式系统关注点第17篇
  6. 揭秘IT人才特点:中美印日四国程序员比较
  7. HTML5与原生APP之争胜负已出?
  8. 视频编码技术---压缩感知编码---匹配跟踪算法
  9. 用户态 tcpdump 如何实现抓到内核网络包的?
  10. java web 许令波_Java Web——Web概述
  11. 用GridView实现SPListItemCollection翻页
  12. Python 学习笔记——笨方法学python3——习题41
  13. 关于Jqueryweui 的select联动用法
  14. 单模和多模光纤的区别是什么?
  15. 怎么卸载VS2013?亲测有效
  16. 合作伙伴最怕的是什么_创业须知:什么样的人是好的合作伙伴?
  17. ubuntu18.04安装与更新NVIDIA驱动
  18. java 可重复map_map的键值可以重复吗
  19. UE4 输入系统详解一、 UE4如何获取win系统输入消息
  20. c语言判断utf-8中文字符串,C语言中判断一个char*是不是utf8编码分享

热门文章

  1. oracle科目余额表的查询,科目余额表查询 · selfaccount-services · 看云
  2. 网络安全专业的就业方向有哪些?
  3. 解决启动filebeat时遇到Exiting: error unpacking config data: more than one namespace configured accessing错误
  4. android--手机震动--Vibrator
  5. Android 底部导航栏 BottomNavigationBar
  6. 微信小程序开发实训记录(一)
  7. QImage 图片分割、保存
  8. QImage、QImageReader Qt获取图片大小
  9. Py西游攻关之Django(一)
  10. VUE进行前后端交互