LeetCode 查詢 二分查詢

2022-08-20 09:36:08 字數 811 閱讀 1145

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

示例:

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

輸出: 4

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

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

輸出: -1

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

注意:經典的二分查詢問題。二分查詢的難點在於不容易寫對,也就是不容易判斷應該使用 < 還是 <=,還有要不要 +1,-1 的問題。二分查詢主要有兩種寫法:

class solution 

else if(nums[mid]& nums, int target)

else if(nums[mid]兩種寫法的不同體現在3個方面,如下圖:

3處不同分別是:

3處不同的原因取決於我們的搜尋範圍是[left, right]還是[left, right)。下面分析兩種不同寫法的區別以及原因:

1、solution/er-fen-cha-zhao-de-xun-huan-bu-bian-liang-zhi-yao-/

leetcode 二分查詢

leetcode 29 給定兩個整數,被除數dividend和除數divisor。將兩數相除,要求不使用乘法 除法和 mod 運算子。返回被除數dividend除以除數divisor得到的商。演算法設計 用2進製的左移操作,每次對被除數左移1位,比較除數與被除數左移的後的大小關係,並在結果中加上左移...

leetcode 二分查詢

二分查詢基本實現 public intbinarysearch int nums,int key return 1 變種二分查詢,找出陣列中key重複元素最左位置 注意邊界 public intbinarysearch int nums,int key if nums l key return l ...

LeetCode 二分查詢

給定乙個 n 個元素有序的 公升序 整型陣列 nums 和乙個目標值 target 寫乙個函式搜尋 nums 中的 target,如果目標值存在返回下標,否則返回 1。示例 1 輸入 nums 1,0,3,5,9,12 target 9 輸出 4 解釋 9 出現在 nums 中並且下標為 4 示例 ...