LeetCode之二分查詢

2021-09-02 22:12:27 字數 988 閱讀 8926

介紹:給定乙個 n 個元素有序的(公升序)整型陣列 nums 和乙個目標值 target ,寫乙個函式搜尋 nums 中的 target,如果目標值存在返回下標,否則返回 -1。

示例 1:

輸入: nums = [-1,0,3,5,9,12], target = 9

輸出: 4

解釋: 9 出現在 nums 中並且下標為 4

示例2:

輸入: nums = [-1,0,3,5,9,12], target = 2

輸出: -1

解釋: 2 不存在 nums 中因此返回 -1

- 你可以假設 nums 中的所有元素是不重複的。

- n 將在 [1, 10000]之間。

- nums 的每個元素都將在 [-9999, 9999]之間。

解題思路:典型的二分查詢,就是一前一後兩個指標,更新法則為判斷target和middle值之間的關係,從而更新begin和end。

源**:

#include #includeusing namespace std;

int search(vector& nums, int target)

if (nums[right] == target)

middle = left + right / 2;

if (nums[middle] == target)

if (nums[middle] > target)

if (nums[middle] < target)

}return -1;

}int main()

; int target = 9;

int result = search(nums,target);

cout << result << endl;

system("pause");

return 0;

}

Leetcode之二分查詢法

針對的是乙個有序陣列進行查詢的情況,用二分查詢法進行資料查詢是乙個不錯的選擇,時間複雜度o log n 定義start和end,不斷改變start和end的值來縮小查詢的區域 public intsearch int array int a else if array temp else start...

查詢之二分查詢

二分查詢前提查詢的序列需要有序 十分好理解 取中間值與目標值對比查詢 注意下數值邊界 public static void main string args int arr2 int arr3 int index binarysearch arr,34 int index2 binarysearch...

leetcode高頻題筆記之二分查詢

去除x0和x1的情況,然後從1到x進行二分查詢 public class solution return right 牛頓迭代法 參考題解 二分查詢 class solution return false 牛頓迭代法 迭代求算數平方根,如果算數平方根的平方還是num,說明是完全平方數 public ...