704二分查找

題目描述

給定一個 n 個元素有序的(升序)整型數組 nums 和一個目標值 target ,寫一個函數搜索 nums 中的 target,如果目標值存在返回下標,否則返回 -1。

提示:

  • 你可以假設 nums 中的所有元素是不重複的。
  • n 將在 [1, 10000]之間。
  • nums 的每個元素都將在 [-9999, 9999]之間。

思路分析

最基礎的二分查找。在不重複的數組中找到目標數。

代碼實現

    public int search(int[] nums, int target) {
        int left = 0, right = nums.length - 1;
        while (left <= right) {
            int mid = left + (right - left) / 2;
            if (nums[mid] == target) {
                return mid;
            } else if (nums[mid] > target) {
                right = mid - 1;
            } else if (nums[mid] < target) {
                left = mid + 1;
            }
        }
        return -1;
    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章