# 278. First Bad Version #### Difficulty: Easy link: https://leetcode.com/problems/first-bad-version/ ### 1. Binary Search #### $O(log(N))$ runtime, $O(1)$ space 在一個連續的陣列中,找到滿足Bad version的最小index,可套用Binary Search Template。 ##### python ```python= # The isBadVersion API is already defined for you. # def isBadVersion(version: int) -> bool: class Solution: def firstBadVersion(self, n: int) -> int: left, right = 1, n while left < right: mid = left + (right - left) // 2 if isBadVersion(mid): right = mid else: left = mid + 1 return left ``` <font color="#00AB5F ">Accepted</font> Runtime: **58 ms**, faster than **18.36%** of Python3 online submissions for First Bad Version. Memory Usage: **13.9 MB**, less than **62.26%** of Python3 online submissions for First Bad Version. ###### tags: `leetcode`