算法艺术

算法题:leetcode 693 交替位二进制数

2018-11-01  本文已影响0人  伊凡vnir

/来源:本人微信公众号:豫见成电
我会连载推送一些关于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))。

上一篇 下一篇

猜你喜欢

热点阅读