Skip to content

201. 数字范围按位与 ​

  • 题号:201
  • 来源:LeetCode
  • 难度:中等
  • 标签:位运算
  • 语言:TypeScript
  • 解法:1 个
  • 作者:lmliheng
  • 最近更新:2026-09-27

TypeScript · O(log n) 时间 · O(1) 空间 · 更新于 2026-09-27

取两数公共二进制前缀,其后低位清零

typescript
/**
 * @difficulty medium
 * @tags 位运算
 * @time O(log n)
 * @space O(1)
 * @note 取两数公共二进制前缀,其后低位清零
 * @201. 数字范围按位与
 */

let left: number = 6 // 0100 0101 0110
let right: number = 7 //0111 1000

const TenTotwo = function (num: number): string {
    let stack: number[] = []
    while (num > 0) {
        stack.unshift(num % 2)
        num = Math.floor(num / 2)
    }
    if (stack.length == 0) {
        stack.unshift(0)
    }

    return stack.join('')
}
let leftStr: string = TenTotwo(left)
let rightStr: string = TenTotwo(right)

if (!(leftStr.length===rightStr.length)) {
    console.log(0)
} else {
     for(let i: number = (1<<30);i>=1;i>>=1){
        if((left&i)!==(right&i))
        {
            console.log(i)
            console.log(Math.floor(left/i)*i)
            break
        }
        
     }
   


}

export {};

源码:ts/leetcode/201. 数字范围按位与.ts


在 GitHub 上查看题目所在目录:lmliheng/algorithm