Monday, May 16, 2022

704. Binary Search

二刷 06/2022

Time O(logN)

Space O(1)

Runtime: 0 ms, faster than 100.00% of Java online submissions for Binary Search.
Memory Usage: 54.5 MB, less than 32.58% of Java online submissions for Binary Search.

class Solution {

    public int search(int[] nums, int target) {

        int start = 0, end = nums.length - 1;

        while (start <= end) {

            int mid = start + (end - start) / 2;

            if (nums[mid] == target) {

                return mid;

            }

            if (nums[mid] < target) {

                start = mid + 1;

            } else {

                end = mid - 1;

            }

        }

        return -1;

    }


一刷 05/2022

Runtime: 0 ms, faster than 100.00% of Java online submissions for Binary Search.
Memory Usage: 42.6 MB, less than 95.81% of Java online submissions for Binary Search.

class Solution {

    public int search(int[] nums, int target) {

        if (nums == null || nums.length == 0) {

            return -1;

        }

        int start = 0, end = nums.length - 1;

        // Stop iteration when they are next to each other

        while (start + 1 < end) {

            int mid = start + (end - start) / 2;

            if (nums[mid] == target) {

                return mid;

            }

            if (nums[mid] < target) {

                start = mid + 1;

            } else {

                end = mid - 1;

            }

        }

        if (nums[end] == target) {

            return end;

        }

        if (nums[start] == target) {

            return start;

        }

        return -1;

    }

}

No comments:

Post a Comment