91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

3天內(nèi)不再提示

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

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

掃碼添加小助手

加入工程師交流群

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

一、引子

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

二、題目

你是產(chǎn)品經(jīng)理,目前正在帶領一個團隊開發(fā)新的產(chǎn)品。不幸的是,你的產(chǎn)品的最新版本沒有通過質(zhì)量檢測。由于每個版本都是基于之前的版本開發(fā)的,所以錯誤的版本之后的所有版本都是錯的。

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

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

示例:

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

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

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

1、思路

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

我們使用二分查找:

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

2、編程實現(xiàn)

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
本文由博客一文多發(fā)平臺 OpenWrite 發(fā)布!

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

    關注

    1817

    文章

    50091

    瀏覽量

    265226
  • 機器學習
    +關注

    關注

    66

    文章

    8553

    瀏覽量

    136920
  • 深度學習
    +關注

    關注

    73

    文章

    5598

    瀏覽量

    124389
  • leetcode
    +關注

    關注

    0

    文章

    20

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    ???????使用 DMM Web API 獲取搜索列表數(shù)據(jù)

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

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

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

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

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

    工業(yè)數(shù)據(jù)采集的真相:99%的企業(yè)都走錯了第一

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

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

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

    淘寶圖片搜索商品API指南

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

    線性搜索與二分搜索介紹

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

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

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

    **CW32L012****開發(fā)評估板的第一個程序**

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

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

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

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

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

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

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

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

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

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

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

    如何在Ubuntu 24.04上運行5.4.47版本

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