当前位置:网站首页>leetcode-693.交替位二进制数
leetcode-693.交替位二进制数
2022-08-03 15:53:00 【KGundam】
位运算
题目详情
**给定一个正整数,检查它的二进制表示是否总是 0、1 交替出现:换句话说,就是二进制表示中相邻两位的数字永不相同。
**
示例1:
输入:n = 5
输出:true
解释:5 的二进制表示是:101
示例2:
输入:n = 7
输出:false
解释:7 的二进制表示是:111.
示例3:
输入:n = 11
输出:false
解释:11 的二进制表示是:1011.
第一种方法:正常取余逐位比较
按题目要求老老实实比较每一位和它的前一位
class Solution
{
public:
bool hasAlternatingBits(int n)
{
int pre = -1; //注意初始化
while (n != 0)
{
int cur = n % 2;
if (cur == pre)
return false;
pre = cur;
n /= 2;
}
return true;
}
};
第二种方法:位运算!
举个例子你就懂了,假如有个数字101010101
我们将它右移一位,得到了010101010 ------刚刚好错位了!
相信你已经懂了,再将两者进行异或运算,如果满足交替位二进制数,就会得到111…111全是1的数
然后再根据 n&n-1 == 0的充要条件是n的二进制位上全是1 来验证即可
我的代码:
class Solution
{
public:
bool hasAlternatingBits(int n)
{
long a = n ^ (n >> 1);//注意类型
return (a & (a + 1)) == 0;
}
};
位运算常用技巧
边栏推荐
- 产品以及研发团队有使用专业的办公软件,如禅道、蓝湖等,他们应该如何使用 Tita 系统?
- 5 v 8.4 v1A charging current charging management IC
- 开源一夏 | 打工人的第25天-曾经的考研人
- CS免杀姿势
- 劲爆!协程终于来了!线程即将是过去式
- "Avnet Embedded Weekly" Issue 276: 2022.07.25--2022.07.31
- 一文看懂推荐系统:召回01:基于物品的协同过滤(ItemCF),item-based Collaboration Filter的核心思想与推荐过程
- How Navicat connects to MySQL on a remote server
- DC-DC 2C(40W/30W) JD6606SX2退功率应用
- 红蓝对抗经验分享:CS免杀姿势
猜你喜欢
基于DMS的数仓智能运维服务,知多少?
LyScript 验证PE程序开启的保护
如何选择合适的损失函数,请看......
美国国防部更“青睐”光量子系统研究路线
DataGrip:非常好用的数据库工具,安装与使用教程,亮点介绍
How to play deep paging with hundreds of millions of data?Compatible with MySQL + ES + MongoDB
Awesome!Coroutines are finally here!Thread is about to be in the past
【深度学习】今日bug(8月2)
MATLAB gcf图窗保存图像,黑色背景/透明背景
一个文件管理系统的软硬件配置清单
随机推荐
ffplay视频播放原理分析
leetcode: 899. Ordered Queue [Thinking Question]
无内鬼,来点干货!SQL优化和诊断
一文看懂推荐系统:召回01:基于物品的协同过滤(ItemCF),item-based Collaboration Filter的核心思想与推荐过程
49 万奖金等你来拿!第四届实时计算 Flink 挑战赛启动,Beyond Stream Processing!
ReentrantLock详解
2021年数据泄露成本报告解读
托尔斯泰:生活中只有两种不幸
5v充8.4v1A电流充电管理ic
下午见!2022京东云数据库新品发布会
opencv 读取和写入路径有汉字的处理方法
MATLAB gcf figure save image with black background/transparent background
How to use binary search and find whether the rotation in the array contains a (target) value?Rotate the sorted array leetcode 81. Search
Interpretation of the 2021 Cost of Data Breach Report
基于牛顿方法在直流微电网潮流研究(Matlab代码实现)
证实了,百度没有快照了
一个文件管理系统的软硬件配置清单
CS免杀姿势
【899. Ordered Queue】
DataGrip:非常好用的数据库工具,安装与使用教程,亮点介绍