「704. 二分查找 」| leetcode 刷題009

題目1

統(tǒng)計(jì)字符串中的單詞個(gè)數(shù),這里的單詞指的是連續(xù)的不是空格的字符。

請(qǐng)注意,你可以假定字符串里不包括任何不可打印的字符。

示例:

輸入: "Hello, my name is John"
輸出: 5

解答

class Solution(object):
    def countSegments(self, s):
        """
        :type s: str
        :rtype: int
        """
        return len(s.split())

split()函數(shù)可以分割任何符號(hào),包括逗號(hào),句號(hào),什么亂七八糟的符號(hào)。相比較來(lái)說,其他語(yǔ)言可沒有這么簡(jiǎn)潔的用法。

題目2

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

示例 1:

輸入: nums = [-1,0,3,5,9,12], target = 9
輸出: 4
解釋: 9 出現(xiàn)在 nums 中并且下標(biāo)為 4
示例 2:

輸入: nums = [-1,0,3,5,9,12], target = 2
輸出: -1
解釋: 2 不存在 nums 中因此返回 -1

提示:

  • 你可以假設(shè) nums 中的所有元素是不重復(fù)的。
  • n 將在 [1, 10000]之間。
  • nums 的每個(gè)元素都將在 [-9999, 9999]之間。

解答

剛開始我沒有看見題目,自己一看這么簡(jiǎn)單,順手就寫了

class Solution(object):
    def search(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: int
        """
        if target in nums:
            return nums.index(target)
        else:
            return -1

寫完之后我覺得不對(duì),再看看題目,說的是二分查找。所謂二分查找就是把列表一分為二,在左右兩邊查找,確定元素區(qū)間之后再次一分為二,直至確定元素。

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

這才是這道題要考察的二分查找。
查看執(zhí)行結(jié)果36ms。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 動(dòng)態(tài)規(guī)劃 111. 爬樓梯思路類似斐波那契數(shù)列注意考慮第 0 階的特殊情況 272. 爬樓梯 II思路類似上題,只...
    6默默Welsh閱讀 2,618評(píng)論 0 1
  • 1 二分查找jdk源碼 時(shí)間O(logn)空間O(1) 遞歸式寫法: 時(shí)間和空間都是O(logn) 2. 二分插入...
    少冰三hun甜閱讀 476評(píng)論 0 1
  • 一、快捷鍵 ctr+b 執(zhí)行ctr+/ 單行注釋ctr+c ...
    o_8319閱讀 6,046評(píng)論 2 16
  • 相愛的人,一定是這樣子的。 吵架,往往是各種小事大事思想碰撞的火花,只不過分大小而已。 小靜和他那個(gè)曖昧的男人就是...
    景家大小姐99閱讀 1,135評(píng)論 0 0
  • 生命里,一些繾綣,無(wú)論素凈,還是喧嘩,都已經(jīng)被歲月賦予了清喜的味道,一些閑詞,或清新,或淡雅,總會(huì)在某一個(gè)回眸的時(shí)...
    邱紫璇閱讀 309評(píng)論 0 0

友情鏈接更多精彩內(nèi)容