在加法/乘法操作中的类型溢出问题
// Forward declaration of isBadVersion API.
bool isBadVersion(int version);
class Solution {
public:
int firstBadVersion(int n) {
int left = 1;
int right = n;
while (left < right) {
int mid = (left + right) / 2;
if (isBadVersion(mid)) {
right = mid;
} else {
left = mid + 1;
}
}
return left;
}
};
Runtime Error Message:
Line 11: Char 29: runtime error: signed integer overflow: 1063376696 + 2126753390 cannot be represented
in type ‘int’ (solution.cpp)
Last executed input:
2126753390
1702766719