LeetCode 1318. 或运算的最小翻转次数(位运算)
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. 或运算的最小翻转次数(位运算)相关推荐
- 阿里笔试题:或运算的最小翻转次数 C++
阿里笔试题:或运算的最小翻转次数 C++ 题目描述 输入输出示例 解题思路 代码 题目描述 给出一个数字n,表示有n组输入用例子,每一组输入给出三个正整数a.b.c,可以对a和b进行位翻转操作,每一次 ...
- 算法--运算的最小翻转次数
题目 给你三个正整数 a.b 和 c.你可以对 a 和 b 的二进制表示进行位翻转操作,返回能够使按位或运算 a OR b == c 成立的最小翻转次数.「位翻转操作」是指将一个数的二进制表示任何单个 ...
- 995. K 连续位的最小翻转次数
链接:995. K 连续位的最小翻转次数 题解: https://leetcode-cn.com/problems/minimum-number-of-k-consecutive-bit-flips/ ...
- Leetcode-滑窗/差分数组-995. K 连续位的最小翻转次数
题目995. K 连续位的最小翻转次数: 题解: 方法一:队列 + 滑窗(from 负雪明烛) class Solution { public:int minKBitFlips(vector<i ...
- LeetCode-995. K连续位的最小翻转次数(Minimum Number of K Consecutive Bit Flips)
K连续位的最小翻转次数 在仅包含 0 和 1 的数组 A 中,一次 K 位翻转包括选择一个长度为 K 的(连续)子数组,同时将子数组中的每个 0 更改为 1,而每个 1 更改为 0. 返回所需的 K ...
- 单片机c语言或运算,单片机avr c语言位运算 与或非 异或逻辑 运算介绍 详解
位运算是指按二进制位进行的运算.在单片机中位运算通常用于I/O端口的输入输出控制和逻辑判断. C语言提供的位运算符有: 运算符 含义 功能 & 按位与 如果两个相应的二进制位都为1,则该位的结 ...
- 位运算全面总结,关于位运算看这篇就够了
文章目录 1 位运算概述 2 位运算的性质 2.1 运算符的优先级 2.2 位运算符的运算律 3 位运算高级操作 4 负数的位运算 5 位运算的一些应用 6 位运算例题 6.1 更新二进制位 6.2 ...
- c语言10以内位运算,C语言基础知识--位运算
1.原码,反码,补码: (1)在n位的机器数中,最高位为符号位,该位为零表示为正,为一表示为负:其余n-1位为数值位,各位的值可为零或一.当真值为正时,原码.反码.补码数值位 完全相同:当真值为负时, ...
- leetcode 995. K 连续位的最小翻转次数(贪心算法)
在仅包含 0 和 1 的数组 A 中,一次 K 位翻转包括选择一个长度为 K 的(连续)子数组,同时将子数组中的每个 0 更改为 1,而每个 1 更改为 0. 返回所需的 K 位翻转的最小次数,以便数 ...
最新文章
- mysql gbk支持_mysql支持gbk
- 二分查找算法及其变种
- mardown 标题带数字_标题中带有数字的故事更成功吗?
- Oracle技术之初始化参数REMOTE_OS_AUTHENT
- 联想昭阳E42-80笔记本电脑重装系统记录
- 最齐全的文化石 艺术石VRay材质球素材,速来收藏
- 【图解】给面试官解释TCP的三次握手与四次挥手-Web运用原理及网络基础
- 利用关联规则挖掘中医证素与恶性肿瘤的关系
- Steam上不去商店和社区的方法 / SteamCommunity 443/80端口被占用报错解决办法
- PhSp_CS2_English安装时的问题
- m3u8 视频的解密,合并处理 通过java代码
- 1-1(中文版)了解为什么要学英语?清楚英语的学习路线和方法
- 微型计算机实验报告温度控制,温度控制实验报告.doc
- Fluent 全流程求解多孔介质算例(1)
- windows server上重启IIS命令
- 安装微软常用运行库合集 解决------由于找不到VCRUNTIME140.dll,无法继续执行代码问题解决
- 怎么样用计算机解锁密码忘了,电脑开机密码忘记了怎么办,详细教您如何解决忘记电脑开机密码...
- 2022,软件测试人员的出路在哪里?
- 5.6.16mysql免安装_mysql-5.6.16-win32免安装版安装过程
- 【职场杂谈】售前工程师岗位的理解杂谈
热门文章
- 多继承以及MRO顺序【super().的使用】
- iOS关于armv7,armv7s,arm64,i386,x86_64等问题
- struct和typedef struct区别
- 当年年仅18岁韩寒舌战群儒,受尽冷嘲热讽!
- Maven整合Spring3.0+Mybatis3.2+Struts2.3+查找坐标+jar包依赖(五)
- const参数,const返回值与const函数
- Centos Cacti 0.8.8g
- C#学习记录3上——类的封装,继承,多态
- PowerBuilder调用.Net编译好的DLL
- jQuery验证validate插件