[LeetCode]201 区间按位与
来源:互联网 发布:广州美工培训班 编辑:程序博客网 时间:2024/05/16 10:11
Bitwise AND of Numbers Range(区间按位与)
【难度:Medium】
Given a range [m, n] where 0 <= m <= n <= 2147483647, return the bitwise AND of all numbers in this range, inclusive.
For example, given the range [5, 7], you should return 4.
给定一个区间[m,n],求该区间所有整数按位与运算的结果。
解题思路
普通算法在区间很大时会导致超时,因此要使用一些位操作。主要思路就是通过判断m和n不同的位数有多少,这些对应的位置按位与结果一定为0,那么当最后剩下m和n相同的位时,按位与就是m(或n),左移不同的位数即可。
c++代码如下:
class Solution {public: int rangeBitwiseAnd(int m, int n) { int tmp = 0; while (m != n) { //右移1位后判断 m >>= 1; n >>= 1; cout << m << " " << n << endl; tmp++; } return n<<tmp; }};
0 0
- [LeetCode]201 区间按位与
- Leetcode 201 Bitwise AND of Numbers Range 区间内整数按位与
- 【LeetCode】006 Bitwise AND of Numbers Range 区间内整数按位与
- 位操作 自然数区间取与
- 区间查询+位运算
- 按位与
- 按位与操作
- & 按位与
- 按位与
- 按位与&
- leetcode合并时间区间
- leetcode区间问题
- 按位与、按位或
- 按位与按位或
- c# 按位与,按位或
- HDU 4135-Co-prime(容斥求区间内与N互质的个数(队列||位运算))
- 位运算-按位与,按位或,按位异或
- 【c位操作】按位与,按位或
- 141. Linked List Cycle
- 删除Linux系统下history记录的方法
- 心飞扬~~
- Android Volley完全解析(一),初识Volley的基本用法
- WPF中控件绑定某类的成员变量
- [LeetCode]201 区间按位与
- XMLHttpRequest cannot load http://xxxxxx. No 'Access-Control-Allow-Origin' header i
- 二叉树实现(java)
- magento 设置全局变量 (Session 和 Registry)
- 替换算法
- win32程序
- 字节对齐总结
- Andrew Ng 机器学习笔记(一)
- button selected时,当按下按钮时背景会变成normal解决办法