/来源:本人微信公众号:豫见成电
我会连载推送一些关于C语言,网络空间安全,数学建模,算法方面的学习经历,还有一些成电生活,欢迎大家关注。/
题目描述:
给定一个正整数,检查他是否为交替位二进制数:换句话说,就是他的二进制数相邻的两个位数永不相等。
示例 1:
输入: 5
输出: True
解释:
5的二进制数是: 101
示例 2:
输入: 7
输出: False
解释:
7的二进制数是: 111
示例 3:
输入: 11
输出: False
解释:
11的二进制数是: 1011
示例 4:
输入: 10
输出: True
解释:
10的二进制数是: 1010
解题思路:
分析题目,其实为分析其二进制数的特性,则在将其转化为二进制数的时候比较前后两位即可。
代码实现(C++):
image实现分析:
实现算法复杂度为O(log(n))。
网友评论