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