sudopower

LC: 278: First Bad Version

lc_278

Link to problem

Solution 3 – Binary search

func firstBadVersion(n int) int {    
    start:=1
    end:=n    

    for start<=end{
        mid:=(start+end)/2
        if isBadVersion(mid){
            // check left
            end=mid-1        
        } else {
            start=mid+1
        }       
    }
    
    return start
}

Solution 2 – Binary search (extra element)

func firstBadVersion(n int) int {    
    var start,end,minBad int
    end=n
    minBad=n/2

    for start&lt;=end{
       if isBadVersion(minBad){
        // check left
        end=minBad-1        
       } else {
        start=minBad+1
       }
       minBad=start+(end-start)/2
    }


    return minBad
}

Solution 3 – Brute Force

func firstBadVersion(n int) int {
    var i int = 1
    for i=1;i<=n;i++{        		
        if(isBadVersion(i)){
            return i
        }
	}
	return n
}

Leave a Reply

Your email address will not be published. Required fields are marked *