69. Sqrt(x)

Description

Implement int sqrt(int x).

Compute and return the square root of x, where x is guaranteed to be a non-negative integer.

Since the return type is an integer, the decimal digits are truncated and only the integer part of the result is returned.

Example 1:

Input: 4
Output: 2

Example 2:

Input: 8
Output: 2
Explanation: The square root of 8 is 2.82842..., and since 
             the decimal part is truncated, 2 is returned.

My Solution

Source Code

1
2
3
4
5
6
7
8
9
10
11
12
13
/**
 * @param {number} x
 * @return {number}
 */
let mySqrt = function(x) {
    let num = 1;
    
    while(num * num <= x){
        num++;
    }
    
    return num - 1;
};

Analysis

This is simple. We start at 1 and iterate over integers until we reach one whose square is larger than x. The running time is also simply O(sqrt(x)). To put that into perspective since O(sqrt(n)) doesn't show up as often as O(logn), O(n^2), etc. in algorithm analysis, O(sqrt(n)) ncreases more rapidly than O(logn) but significantly less than O(n).