201
選択した UI 言語に合わせて問題文をロシア語から翻訳します。コードは変更しません。
. 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 表示.
有効な求人はまだありません。