Find Three Consecutive Integers That Sum to a Given Number LeetCode solution in C++

1
class Solution {
2
public:
3
vector<long long> sumOfThree(long long num) {
4
// binary Search
5

6
long long lo = -1; // -1 becoz we have num == 0 as well if we put lo=0 then
7
// it will fail in 1 testcase
8
long long hi = num;
9
while (lo <= hi) {
10
long long mid = lo + (hi - lo) / 2;
11
long long val = 3 * mid + 3; // mid+mid+1mid+2 == num
12
if (val == num) {
13
return {mid, mid + 1, mid + 2};
14
} else if (val > num) {
15
hi = mid - 1;
16
} else {
17
lo = mid + 1;
18
}
19
}
20

21
return {};
22
}
23
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0