1. 题目

给你三个正整数 a、b 和 c。

你可以对 a 和 b 的二进制表示进行位翻转操作,返回能够使按位或运算 a OR b == c 成立的最小翻转次数。

「位翻转操作」是指将一个数的二进制表示任何单个位上的 1 变成 0 或者 0 变成 1 。

示例 1:

输入:a = 2, b = 6, c = 5
输出:3
解释:翻转后 a = 1 , b = 4 , c = 5 使得 a OR b == c示例 2:
输入:a = 4, b = 2, c = 7
输出:1示例 3:
输入:a = 1, b = 2, c = 3
输出:0提示:
1 <= a <= 10^9
1 <= b <= 10^9
1 <= c <= 10^9

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimum-flips-to-make-a-or-b-equal-to-c
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 将 c 的每一位右移到最右边跟1&操作,判断是1还是0
  • 同理判断a,b
class Solution {public:int minFlips(int a, int b, int c) {int flip = 0, i;for(i = 0; i < 32; ++i){if((c>>i)&1)//c该位为1{if((((a>>i)&1)==0) && (((b>>i)&1)==0))flip++;//当a,b,该位都为0时,翻一位就可以了}else//c该位为0{if((((a>>i)&1)==1) && (((b>>i)&1)==0))flip++;else if((((a>>i)&1)==0) && (((b>>i)&1)==1))flip++;else if((((a>>i)&1)==1) && (((b>>i)&1)==1))flip += 2;//a,b,都是1,两个都要翻,才可以得到0}}return flip;}
};

LeetCode 1318. 或运算的最小翻转次数(位运算)相关推荐

  1. 阿里笔试题:或运算的最小翻转次数 C++

    阿里笔试题:或运算的最小翻转次数 C++ 题目描述 输入输出示例 解题思路 代码 题目描述 给出一个数字n,表示有n组输入用例子,每一组输入给出三个正整数a.b.c,可以对a和b进行位翻转操作,每一次 ...

  2. 算法--运算的最小翻转次数

    题目 给你三个正整数 a.b 和 c.你可以对 a 和 b 的二进制表示进行位翻转操作,返回能够使按位或运算 a OR b == c 成立的最小翻转次数.「位翻转操作」是指将一个数的二进制表示任何单个 ...

  3. 995. K 连续位的最小翻转次数

    链接:995. K 连续位的最小翻转次数 题解: https://leetcode-cn.com/problems/minimum-number-of-k-consecutive-bit-flips/ ...

  4. Leetcode-滑窗/差分数组-995. K 连续位的最小翻转次数

    题目995. K 连续位的最小翻转次数: 题解: 方法一:队列 + 滑窗(from 负雪明烛) class Solution { public:int minKBitFlips(vector<i ...

  5. LeetCode-995. K连续位的最小翻转次数(Minimum Number of K Consecutive Bit Flips)

    K连续位的最小翻转次数 在仅包含 0 和 1 的数组 A 中,一次 K 位翻转包括选择一个长度为 K 的(连续)子数组,同时将子数组中的每个 0 更改为 1,而每个 1 更改为 0. 返回所需的 K ...

  6. 单片机c语言或运算,单片机avr c语言位运算 与或非 异或逻辑 运算介绍 详解

    位运算是指按二进制位进行的运算.在单片机中位运算通常用于I/O端口的输入输出控制和逻辑判断. C语言提供的位运算符有: 运算符 含义 功能 & 按位与 如果两个相应的二进制位都为1,则该位的结 ...

  7. 位运算全面总结,关于位运算看这篇就够了

    文章目录 1 位运算概述 2 位运算的性质 2.1 运算符的优先级 2.2 位运算符的运算律 3 位运算高级操作 4 负数的位运算 5 位运算的一些应用 6 位运算例题 6.1 更新二进制位 6.2 ...

  8. c语言10以内位运算,C语言基础知识--位运算

    1.原码,反码,补码: (1)在n位的机器数中,最高位为符号位,该位为零表示为正,为一表示为负:其余n-1位为数值位,各位的值可为零或一.当真值为正时,原码.反码.补码数值位 完全相同:当真值为负时, ...

  9. leetcode 995. K 连续位的最小翻转次数(贪心算法)

    在仅包含 0 和 1 的数组 A 中,一次 K 位翻转包括选择一个长度为 K 的(连续)子数组,同时将子数组中的每个 0 更改为 1,而每个 1 更改为 0. 返回所需的 K 位翻转的最小次数,以便数 ...

最新文章

  1. mysql gbk支持_mysql支持gbk
  2. 二分查找算法及其变种
  3. mardown 标题带数字_标题中带有数字的故事更成功吗?
  4. Oracle技术之初始化参数REMOTE_OS_AUTHENT
  5. 联想昭阳E42-80笔记本电脑重装系统记录
  6. 最齐全的文化石 艺术石VRay材质球素材,速来收藏
  7. 【图解】给面试官解释TCP的三次握手与四次挥手-Web运用原理及网络基础
  8. 利用关联规则挖掘中医证素与恶性肿瘤的关系
  9. Steam上不去商店和社区的方法 / SteamCommunity 443/80端口被占用报错解决办法
  10. PhSp_CS2_English安装时的问题
  11. m3u8 视频的解密,合并处理 通过java代码
  12. 1-1(中文版)了解为什么要学英语?清楚英语的学习路线和方法
  13. 微型计算机实验报告温度控制,温度控制实验报告.doc
  14. Fluent 全流程求解多孔介质算例(1)
  15. windows server上重启IIS命令
  16. 安装微软常用运行库合集 解决------由于找不到VCRUNTIME140.dll,无法继续执行代码问题解决
  17. 怎么样用计算机解锁密码忘了,电脑开机密码忘记了怎么办,详细教您如何解决忘记电脑开机密码...
  18. 2022,软件测试人员的出路在哪里?
  19. 5.6.16mysql免安装_mysql-5.6.16-win32免安装版安装过程
  20. 【职场杂谈】售前工程师岗位的理解杂谈

热门文章

  1. 多继承以及MRO顺序【super().的使用】
  2. iOS关于armv7,armv7s,arm64,i386,x86_64等问题
  3. struct和typedef struct区别
  4. 当年年仅18岁韩寒舌战群儒,受尽冷嘲热讽!
  5. Maven整合Spring3.0+Mybatis3.2+Struts2.3+查找坐标+jar包依赖(五)
  6. const参数,const返回值与const函数
  7. Centos Cacti 0.8.8g
  8. C#学习记录3上——类的封装,继承,多态
  9. PowerBuilder调用.Net编译好的DLL
  10. jQuery验证validate插件