当前位置: 首页 > news >正文

LeetCode 868.二进制间距

题目

给定一个正整数 n,找到并返回 n 的二进制表示中两个 相邻 1 之间的 最长距离 。如果不存在两个相邻的 1,返回 0 。

如果只有 0 将两个 1 分隔开(可能不存在 0 ),则认为这两个 1 彼此 相邻 。两个 1 之间的距离是它们的二进制表示中位置的绝对差。例如,"1001" 中的两个 1 的距离为 3 。

思路:根据题意进行模拟即可,遍历 n 的二进制中的每一位 i,同时记录上一位 1 的位置 j,即可得到所有相邻 1 的间距,所有间距取 max 即是答案。

代码

class Solution {public int binaryGap(int n) {int j = -1;int ans = 0;for (int i = 31; i >= 0; i--) {// 当i不是最低位时,右移后的结果可能包含多个有效位// n >> i将n右移i位,使目标位成为最低位// & 1与操作会清除其他位,仅保留最低位的值(0 或 1)if (((n >> i) & 1) == 1) {if (j != -1) {ans = Math.max(ans, j - i);} j = i;}}return ans;}
}

性能

时间复杂度o(1)

空间复杂度o(1)

http://www.xdnf.cn/news/1003483.html

相关文章:

  • 第三十八课:实战案例-飞鸟和飞机的识别
  • EtherCAT主站转Profinet网关与禾川伺服驱动器X4E快速通讯案例
  • 并行程序设计
  • Nuttx之mm_realloc
  • AtCoder-ABC-409 题解
  • java BIO/NIO/AIO
  • 工具+服务双驱动:创客匠人打造中医IP差异化竞争力
  • 搭建商城系统可能运用到的技术
  • Python告别数据处理卡顿之itertools模块使用详解
  • 立即体验|效果好、低延迟,Trae 已支持 Doubao-1.5-thinking-pro 新模型
  • faiss上的GPU流程,GPU与CPU之间的联系
  • MCP与FunctionCall的区别
  • HALCON第七讲->标定
  • 西电【计算机与网络安全实验】课程期末复习遗留情报
  • git添加全局忽略.DS_Store文件
  • MySQL 和 PostgreSQL,到底选择哪个?
  • 英语作文模板
  • 第八节 工程化与高级特性-模块与命名空间的选择
  • 道可云人工智能每日资讯|雄安人工智能产业园正式开园
  • 循环的嵌套
  • Chroma 向量数据库学习笔记
  • DAY49
  • Vue.js 从入门到实战:用户管理分页表格项目详解
  • 新书速览|CUDA并行编程与性能优化
  • Java大厂面试真题:谢飞机的技术挑战
  • 快速排序:分治思想的经典实践
  • 数据结构 - Java 队列
  • react中hook和高阶组件的选型
  • Windows安装docker及使用
  • nginx学习