程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> LeetCode -- Bitwise AND of Numbers Range

LeetCode -- Bitwise AND of Numbers Range

編輯:C++入門知識

LeetCode -- Bitwise AND of Numbers Range


題目描述:
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之間的數字做與運算。


思路:
本題的關鍵在於,求出了n& n-1為v,就可以直接把n設為v,而沒必要在求v與n-1之間的數了。


實現代碼:

public class Solution {
    public int RangeBitwiseAnd(int m, int n) 
    {
        while(n > m){
            n = n & n-1;
        }
        return n & m ;
    }
}


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved