First Bad Version LeetCode solution in Python
1class Solution:2def firstBadVersion(self, n: int) -> int:3fast, slow = int(n / 2), n4diff = abs(fast - slow)5while isBadVersion(fast) == isBadVersion(slow) or diff > 1:6fast, slow = fast + (-1) ** isBadVersion(fast) * (int(diff / 2) or 1), fast7diff = abs(fast - slow)8return fast if isBadVersion(fast) else slow