auto-generated entry for First Bad Version. the solution files are available below.
solution files
- C++
first-bad-version/synced-solution.cpp - Python
first-bad-version/synced-solution.py - TypeScript
first-bad-version/synced-solution.ts
Collected C++, Python, TypeScript solutions for first bad version. Add a dedicated write-up later if you want deeper notes.
auto-generated entry for First Bad Version. the solution files are available below.
first-bad-version/synced-solution.cppfirst-bad-version/synced-solution.pyfirst-bad-version/synced-solution.tsdef isBadVersion(version):
pass
def firstBadVersion(n):
left, right = class="syntax-number">1, n
while left < right:
mid = (left + right) class=class="syntax-string">"syntax-comment">// class="syntax-number">2
if isBadVersion(mid):
right = mid
else:
left = mid + class="syntax-number">1
return left
class Solution {
public:
int firstBadVersion(int n) {
int left = class="syntax-number">1, right = n;
while (left < right) {
int mid = left + (right - left) / class="syntax-number">2;
if (isBadVersion(mid)) {
right = mid;
} else {
left = mid + class="syntax-number">1;
}
}
return left;
}
};
function solution(isBadVersion: (version: number) => boolean) {
return function(n: number): number {
let left = class="syntax-number">1, right = n;
while (left < right) {
const mid = Math.floor(left + (right - left) / class="syntax-number">2);
if (isBadVersion(mid)) {
right = mid;
} else {
left = mid + class="syntax-number">1;
}
}
return left;
};
}