69. Sqrt(x)

class Solution {

    /**
     * @param Integer $x
     * @return Integer
     */
    function mySqrt($x) {
        $result = 0;
        $start = 0;
        $end = $x;

        while ($start <= $end) {
            $mid = (int)(($start + $end) / 2);
            $square = $mid ** 2;
            if ($square === $x){
                return $mid;
            } elseif ($square < $x){
                $start = $mid + 1;
                $result = $mid;
            } else {
                $end = $mid - 1;
            }
        }

        return $result;
    }
}

Last updated