中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

leetcode中如何解決二分查找問題

發布時間:2022-01-17 11:45:59 來源:億速云 閱讀:120 作者:小新 欄目:大數據

這篇文章將為大家詳細講解有關leetcode中如何解決二分查找問題,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

題目鏈接

https://leetcode-cn.com/problems/binary-search/

 

題目描述

給定一個 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
 

提示:

  1. 你可以假設 nums 中的所有元素是不重復的。

  2. n 將在 [1, 10000]之間。

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

 

解題方案

 

思路

  • 標簽:二分查找

  • 過程:

    • 設定左右指針

    • 找出中間位置,并判斷該位置值是否等于target

    • nums[mid] == target 則返回該位置下標

    • nums[mid] > target 則右側指針移到中間

    • nums[mid] < target 則左側指針移到中間

  • 時間復雜度:O(logN)

 

畫解

leetcode中如何解決二分查找問題leetcode中如何解決二分查找問題leetcode中如何解決二分查找問題leetcode中如何解決二分查找問題leetcode中如何解決二分查找問題leetcode中如何解決二分查找問題leetcode中如何解決二分查找問題

 

代碼

class Solution {    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 {                left = mid + 1;            }        }        return -1;    }}

關于“leetcode中如何解決二分查找問題”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

深州市| 沂南县| 巴楚县| 古丈县| 隆林| 安多县| 景洪市| 莱阳市| 陈巴尔虎旗| 施秉县| 新蔡县| 若羌县| 含山县| 普兰县| 绥棱县| 连平县| 西乡县| 阜城县| 新绛县| 肥东县| 章丘市| 江门市| 信阳市| 高密市| 那坡县| 茂名市| 孝昌县| 静安区| 乐安县| 西青区| 馆陶县| 旬阳县| 赤水市| 汤阴县| 辛集市| 合作市| 衡南县| 固阳县| 文山县| 寻乌县| 承德市|