当前位置:网站首页>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;
}
};
位运算常用技巧

边栏推荐
- 攻防世界----bug
- "Avnet Embedded Weekly" Issue 276: 2022.07.25--2022.07.31
- Essentially a database data recovery 】 【 database cannot read data recovery case
- 一文看懂推荐系统:召回03:基于用户的协同过滤(UserCF),要计算用户之间的相似度
- 如何分析周活跃率?
- Some optional strategies and usage scenarios for PWA application Service Worker caching
- 泰山OFFICE技术讲座:段落边框的绘制难点在哪里?
- 破解数字化转型困局,企业分析协同场景案例解析
- 用户侧有什么办法可以自检hologres单表占用内存具体是元数据、计算、缓存的使用情况?
- QT QT 】 【 to have developed a good program for packaging into a dynamic library
猜你喜欢
随机推荐
Internship Road: Documenting Confusion in My First Internship Project
用友YonSuite与旺店通数据集成对接-技术篇2
leetcode:899. 有序队列【思维题】
产品以及研发团队有使用专业的办公软件,如禅道、蓝湖等,他们应该如何使用 Tita 系统?
How to start an NFT collection
Ruoyi Ruoyi framework @DataScope annotation use and some problems encountered
在 360 度绩效评估中应该问的 20 个问题
MySQL中的基数是啥?
Three key expectations for the crypto market in August Price moves north?Still expected to be in turmoil
为什么我强烈推荐使用智能化async?
With a single operation, I improved the SQL execution efficiency by 10,000,000 times!
无内鬼,来点干货!SQL优化和诊断
JS basics--judgment
为教育插上数字化的翅膀,网易云信发布「互联网+教育」整体解决方案
I am doing open source in Didi
土耳其国防部:联合协调中心将对首艘乌克兰粮船进行安全检查
【Unity入门计划】基本概念(8)-瓦片地图 TileMap 01
自定SvgIcon公用组件
一文看懂推荐系统:概要02:推荐系统的链路,从召回粗排,到精排,到重排,最终推荐展示给用户
一文看懂推荐系统:召回01:基于物品的协同过滤(ItemCF),item-based Collaboration Filter的核心思想与推荐过程









