亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

python二分法查找怎么使用

發布時間:2021-11-22 09:08:00 來源:億速云 閱讀:108 作者:iii 欄目:開發技術

這篇文章主要講解了“python二分法查找怎么使用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“python二分法查找怎么使用”吧!

對于要搜索的元素越多,二分查找速度比簡單查找快的更多 這是二分查找算法的優點,但二分算法也有缺點,二分算法只針對有序的列表,這樣插入和刪除就會很困難,因此,折半查找方法只適合不經常變動的有序列表

 二分查找有個很重要的特點,就是不會查找數列的全部元素,而查找的數據量其實正好符合元素的對數,正常情況下每次查找的元素都在一半一半地減少。所以二分查找的時間復雜度為 O(log2n) 是毫無疑問的。當然,最好的情況是只查找一次就能找到,但是在最壞和一般情況下的確要比順序查找好了很多。

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

class Solution:
    def search(self,nums:List[int],target:int)->int:
        left=0
        right=len(nums)-1
        while(left<=right):
            mid=(left+right)//2
            if nums[mid]==target:
               return mid
            if nums[mid]<target:
                left=mid+1
            else:
                right=mid-1
        return -1

題目二:在一個嚴格遞減的數組中,找到第二個比目標值target大的數的下標。若不存在,則返回-1。 

class Solution:
    def search(self,nums:List[int],target:int)->int:
        left=0
        right=len(nums)-1
        while(left<=right):
            mid=(left+right)//2
            if nums[mid]==target:
               return mid
            if nums[mid]>target:
                left=mid+1
            else:
                right=mid-1
        return -1

題目三:函數應該以長度為 2 的整數數組的形式返回這兩個數的下標值。numbers 的下標 從 1 開始計數 ,所以答案數組應當滿足 1 <= answer[0] < answer[1] <= numbers.length 。你可以假設每個輸入 只對應唯一的答案 ,而且你 不可以 重復使用相同的元素。

class Solution:
     def twoSum(self, numbers: List[int], target: int) -> List[int]:
        for i in range(len(numbers)-1):
            left=i
            right=len(numbers) - 1
            while(left<=right):
                mid=(left+right)//2
                if numbers[mid]+numbers[i]==target:
                    return [i+1,mid+1]
                elif numbers[mid]+numbers[i]<target:
                    left=mid+1
                else:
                    right = mid-1
            return [-1,-1]

感謝各位的閱讀,以上就是“python二分法查找怎么使用”的內容了,經過本文的學習后,相信大家對python二分法查找怎么使用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

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

AI

宁都县| 巴南区| 嵊州市| 盈江县| 申扎县| 冷水江市| 原平市| 敦化市| 肥城市| 定襄县| 水城县| 峡江县| 彩票| 永泰县| 北碚区| 葵青区| 宁晋县| 宿州市| 公安县| 博白县| 湄潭县| 冕宁县| 梓潼县| 金沙县| 济源市| 资中县| 信阳市| 高密市| 平远县| 宝山区| 榆社县| 酉阳| 马龙县| 会昌县| 彭阳县| 邻水| 岳西县| 吉木萨尔县| 洛南县| 通州市| 万州区|