尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

经典算法实例应用:交替位二进制数(二)

经典算法实例应用:交替位二进制数(二)
📅 发布时间:2026/7/17 17:32:54

接上文,与大家分享另一种解题思路:

方法二:位运算

思路

对输入 n 的二进制表示右移一位后,得到的数字再与 n 按位异或得到 a。当且仅当输入 n 为交替位二进制数时,a 的二进制表示全为 1(不包括前导 0)。这里进行简单证明:当 a 的某一位为 1 时,当且仅当 n 的对应位和其前一位相异。当 a 的每一位为 1 时,当且仅当 n 的所有相邻位相异,即 n 为交替位二进制数。

将 a 与 a+1 按位与,当且仅当 a 的二进制表示全为 1 时,结果为 0 。这里进行简单证明:当且仅当 a 的二进制表示全为 1 时,a+1 可以进位,并将原最高位置为 0 ,按位与的结果为 0 。否则,不会产生进位,两个最高位都为 1 ,相与结果不为 0 。

结合上述两步,可以判断输入是否为交替位二进制数。

代码

Python3

class Solution: def hasAlternatingBits(self, n: int) -> bool: a = n ^ (n >> 1) return a & (a + 1) == 0

Java

class Solution { public boolean hasAlternatingBits(int n) { int a = n ^ (n >> 1); return (a & (a + 1)) == 0; } }

C#

public class Solution { public bool HasAlternatingBits(int n) { int a = n ^ (n >> 1); return (a & (a + 1)) == 0; } }

C++

class Solution { public: bool hasAlternatingBits(int n) { long a = n ^ (n >> 1); return (a & (a + 1)) == 0; } };

C

bool hasAlternatingBits(int n) { long a = n ^ (n >> 1); return (a & (a + 1)) == 0; }

Golang

func hasAlternatingBits(n int) bool { a := n ^ n>>1 return a&(a+1) == 0 }

JavaScript

var hasAlternatingBits = function(n) { const a = n ^ (n >> 1); return (a & (a + 1)) === 0; };

复杂度分析

  • 时间复杂度:O(1) 。仅使用了常数时间来计算。
  • 空间复杂度:O(1) 。使用了常数空间来存储中间变量。

相关新闻

  • wdb:突破传统调试边界的Python全栈Web调试器革命
  • 古迪植物大战僵尸积木60043机关套装测评与拼搭指南
  • 东川区高端名表回收怎么选?30 年连锁易奢福无损鉴表当场结算 - 奢侈品回收实体店

最新新闻

  • LSP Plugins插件格式对比:CLAP、LV2、VST2、VST3哪个最适合你?
  • 泰格豪雅中国官方售后服务中心|详细地址与客服电话权威信息通知(2026年7月更新) - 亨得利官方服务中心
  • CMake-IDE 多项目管理:如何在同一个 Emacs 实例中处理多个 C/C++ 项目
  • WebSocket 在实时功能中的使用:连接管理与心跳检测
  • KMP 全栈进化:从 Android 跨端到 AI Agent,Koog 让 Kotlin 彻底摆脱 Python 依赖
  • Linux包管理神器yum:从基础使用到高级技巧

日新闻

  • 佛山青少年训练营推荐:军博营地实力顶尖 - 秋山寄远
  • 如何快速上手PvZ2 Gardendless:免费Web版植物大战僵尸2完整指南
  • jiuwen-deepsearch核心功能详解:规划-检索-反思三合一智能工作流

周新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号