201
Il testo del problema è tradotto dal russo per la lingua selezionata. Il codice resta invariato.
. Bitwise AND of Numbers Range
given два целых числа left и right, которые представляют диапазон [left, right], return побитовое И всех чисел в этом диапазоне включительно.
Esempio:
Input: left = 5, right = 7
Output: 4
C# soluzione
abbinato/originalepublic class Solution {
public int RangeBitwiseAnd(int m, int n) {
int shift = 0;
while (m < n) {
m >>= 1;
n >>= 1;
shift++;
}
return m << shift;
}
}
C++ soluzione
bozza automatica, rivedere prima dell'invio#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 soluzione
bozza automatica, rivedere prima dell'invioimport 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
offerte attive with overlapping task tags are mostrati.
Non ci sono ancora offerte attive.