201

题目文本会按所选界面语言从俄语翻译;代码保持不变。

. Bitwise AND of Numbers Range

given два целых числа left и right, которые представляют диапазон [left, right], return побитовое И всех чисел в этом диапазоне включительно.

示例:

Input: left = 5, right = 7

Output: 4

C# 解法

匹配/原始
public class Solution {
    public int RangeBitwiseAnd(int m, int n) {
        int shift = 0;
        while (m < n) {
            m >>= 1;
            n >>= 1;
            shift++;
        }
        return m << shift;
    }
}

C++ 解法

自动草稿,提交前请检查
#include <bits/stdc++.h>
using namespace std;

// Auto-generated C++ draft from the C# solution. Review containers, LINQ and helper types before submit.
class Solution {
public:
    public int RangeBitwiseAnd(int m, int n) {
        int shift = 0;
        while (m < n) {
            m >>= 1;
            n >>= 1;
            shift++;
        }
        return m << shift;
    }
}

Java 解法

自动草稿,提交前请检查
import java.util.*;
import java.math.*;

// Auto-generated Java draft from the C# solution. Review API differences before LeetCode submit.
public class Solution {
    public int RangeBitwiseAnd(int m, int n) {
        int shift = 0;
        while (m < n) {
            m >>= 1;
            n >>= 1;
            shift++;
        }
        return m << shift;
    }
}

Algorithm

1️⃣

Сдвигать left и right вправо, пока они не станут равными.

2️⃣

Подсчитать количество сдвигов.

3️⃣

Сдвинуть left влево на количество сдвигов и вернуть результат.

😎

Vacancies for this task

活跃职位 with overlapping task tags are 已显示.

所有职位
目前还没有活跃职位。