国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

LeetCode初級算法-排序和搜索01:第一個錯誤的版本

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2020-12-10 22:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

LeetCode初級算法--排序和搜索01:第一個錯誤的版本

一、引子

這是由LeetCode官方推出的的經典面試題目清單~
這個模塊對應的是探索的初級算法~旨在幫助入門算法。我們第一遍刷的是leetcode推薦的題目。

二、題目

你是產品經理,目前正在帶領一個團隊開發新的產品。不幸的是,你的產品的最新版本沒有通過質量檢測。由于每個版本都是基于之前的版本開發的,所以錯誤的版本之后的所有版本都是錯的。

假設你有 n 個版本 [1, 2, ..., n],你想找出導致之后所有版本出錯的第一個錯誤的版本。

你可以通過調用 bool isBadVersion(version) 接口來判斷版本號 version 是否在單元測試中出錯。實現一個函數來查找第一個錯誤的版本。你應該盡量減少對調用 API 的次數。

示例:

給定 n = 5,并且 version = 4 是第一個錯誤的版本。

調用 isBadVersion(3) -> false
調用 isBadVersion(5) -> true
調用 isBadVersion(4) -> true

所以,4 是第一個錯誤的版本。 

1、思路

首先我們可以想到的就是把整個列表都順序遍歷一遍,第一次調用接口出現False的下一個為True的就是我們要求的值,但是這個算法會超時。

我們使用二分查找:

我們要尋找第一個錯誤版本,也就是要保留最后一個false之后的第一個true。所以在更新邊界的時候,右邊界就不用減1了,這樣最后當左右相等時一定是第一個true。

2、編程實現

python

# The isBadVersion API is already defined for you.
# @param version, an integer
# @return a bool
# def isBadVersion(version):

class Solution:
    def firstBadVersion(self, n):
        """
        :type n: int
        :rtype: int
        """
        left = 1
        right = n
        while left
本文由博客一文多發平臺 OpenWrite 發布!

審核編輯 黃昊宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 人工智能
    +關注

    關注

    1817

    文章

    50094

    瀏覽量

    265302
  • 機器學習
    +關注

    關注

    66

    文章

    8553

    瀏覽量

    136931
  • 深度學習
    +關注

    關注

    73

    文章

    5598

    瀏覽量

    124396
  • leetcode
    +關注

    關注

    0

    文章

    20

    瀏覽量

    2544
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    ???????使用 DMM Web API 獲取搜索列表數據

    ? ?DMM 平臺提供了豐富的 Web API 接口,允許開發者獲取其平臺上的各種數據。其中常用的接口是用于獲取搜索列表結果的 API。本文將介紹如何調用此 API 來獲取商品或內容的列表信息
    的頭像 發表于 02-09 15:34 ?152次閱讀
    ???????使用 DMM Web API 獲取<b class='flag-5'>搜索</b>列表數據

    里可以添加本文要記錄的大

    或降序排列),就如同水中的氣泡最終會上浮到頂端樣,故名“冒泡排序”。 1.算法描述 1、比較相鄰的元素。如果第一個比第二大,就進行交換
    發表于 01-27 22:05

    C語言插入排序算法和代碼

    和待插入的元素。第一輪時,將第一個元素作為排序好的子數組,插入第二元素;第二輪,將前兩元素作為排序
    發表于 01-15 06:44

    工業數據采集的真相:99%的企業都走錯了第一

    大多數企業在數據采集上犯的第一個錯誤是:從硬件開始思考。 “我們需要幾個網關?” “哪種型號的采集模塊?” “預算夠買多少臺設備?” 這些看似合理的問題,實際上把解決方案局限在了“硬件采購”的層面。真正的數據采集,應該從三
    的頭像 發表于 12-26 10:18 ?175次閱讀
    工業數據采集的真相:99%的企業都走錯了<b class='flag-5'>第一</b>步

    固件版本錯配:讓老工程師都栽過跟頭的“低級錯誤

    在硬件生產與研發調試中,固件版本與硬件版本不匹配所導致的問題,其排查成本往往遠高于問題本身。此類錯誤并非偶然的操作失誤,而是暴露了從開發到生產移交過程中版本管理流程的缺失。
    發表于 12-18 10:31

    淘寶圖片搜索商品API指南

    、摘要 淘寶圖片搜索商品API是基于圖像識別技術的智能搜索接口,允許用戶通過上傳商品圖片來搜索相似或同款商品。該接口廣泛應用于比價、找同款、商品識別等電商場景。 二、接口概述 1.功
    的頭像 發表于 12-08 14:26 ?1194次閱讀

    線性搜索與二分搜索介紹

    線性搜索(Linear Search):從數組的第一個元素開始,依次將當前元素與目標值進行比較,直到找到目標值或搜索完整個數組。 二分搜索(Binary Search):在有序數組中查
    發表于 12-01 07:36

    Linux 下交叉編譯實戰:跑起來你的第一個 STM32 程序

    跑起來你的第一個STM32程序。、準備工作在開始之前,需要準備:1、Linux開發環境Ubuntu、Debian或其他主流發行版都可以。2、ARMGCC交叉編譯工具
    的頭像 發表于 11-24 19:04 ?805次閱讀
    Linux 下交叉編譯實戰:跑起來你的<b class='flag-5'>第一個</b> STM32 程序

    **CW32L012****開發評估板的第一個程序**

    CW32L012****開發評估板的第一個程序 最近以15.99在CW32生態社區入手了這塊CW32L012開發評估板,我迫不及待的燒錄進電燈程序,看看這塊板子是否是正常的,能否滿足我后面的學習
    發表于 11-22 00:09

    避雷!樹莓派初學者常犯的5錯誤

    卡、安裝錯誤的操作系統版本、同時使用兩網絡適配器、使用不合適的電源以及創建無法恢復的備份。但是,只指出問題而不提供解決方案又有什么用呢?繼續閱讀,我還將推薦
    的頭像 發表于 07-22 17:16 ?1324次閱讀
    避雷!樹莓派初學者常犯的5<b class='flag-5'>個</b><b class='flag-5'>錯誤</b>!

    請問Linux+rtos的1.9版本sdk大核開機自啟動程序怎么關閉?

    編譯開機大核心就出現程序報錯,01開發板csi2上面默認接的攝像頭是gc2093的,運行的是ov5647 期待結果和實際結果 可以關閉這個自啟動程序;也希望順帶知道我要開啟自啟動的程序放在哪里 軟硬件
    發表于 07-22 06:07

    HRTIM變頻控制輸出的第一個周期頻率異常的原因?

    在使用STM32G474CBT6的HRTIM_Mater、HRTIM_TIMER_B和HRTIM_TIMER_D輸出同步互補的四路輸出時,關閉4路輸出和三定時器的計數后,再次開啟時第一個周期的頻率
    發表于 04-25 06:17

    文教你構建第一個應用程序

    構建第一個應用程序 創建新工程 步驟 1通過如下兩種方式,打開工程創建向導界面。 如果當前未打開任何工程,可以在 DevEco Studio 的歡迎頁,選擇“Projects &
    發表于 04-24 06:41

    HRTIM變頻控制輸出的第一個周期頻率異常的原因?

    在使用STM32G474CBT6的HRTIM_Mater、HRTIM_TIMER_B和HRTIM_TIMER_D輸出同步互補的四路輸出時,關閉4路輸出和三定時器的計數后,再次開啟時第一個周期的頻率
    發表于 04-22 12:08

    如何在Ubuntu 24.04上運行5.4.47版本

    構建 Yocto 包,但并沒有真正工作。第一個問題是 Python 版本。您肯定需要使用 2.7 和 3.9 版本,它們不能直接使用。通過使用 pyenv,可以解決 Python 問題。 現在我最終
    發表于 04-11 06:08