function search(nums: number[], target: number): number {
    let l = 0,
        r = nums.length - 1;

    while (l <= r) {
        var m = l + Math.floor((r - l) / 2);
        if (nums[m] > target) {
            r = m - 1;
        } else if (nums[m] < target) {
            l = m + 1;
        } else {
            return m;
        }
    }

    return -1;
}