力扣刷題(第六十四天)

靈感來源?

- 保持更新,努力學習

- python腳本學習

第一個錯誤的版本

解題思路

  1. 初始化左右邊界:左邊界?left = 1,右邊界?right = n
  2. 二分查找循環
    • 計算中間版本號?mid
    • 若?mid?是錯誤版本,說明第一個錯誤版本在?[left, mid]?中,更新右邊界。
    • 若?mid?不是錯誤版本,說明第一個錯誤版本在?[mid+1, right]?中,更新左邊界。
  3. 終止條件:當?left?和?right?相遇時,即為第一個錯誤版本。
    # 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, right = 1, nwhile left < right:mid = left + (right - left) // 2  # 防止整數溢出if isBadVersion(mid):# 第一個錯誤版本在[left, mid]中right = midelse:# 第一個錯誤版本在[mid+1, right]中left = mid + 1# 循環結束時,left和right指向同一個位置return left

逐行解釋

# 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# 循環條件:左邊界嚴格小于右邊界# 當left == right時,循環結束,此時的left即為第一個錯誤版本while left < right:# 計算中間版本號,使用(left + right) // 2可能導致整數溢出# 例如當left和right都接近INT_MAX時,加法會溢出mid = left + (right - left) // 2# 檢查中間版本是否為錯誤版本if isBadVersion(mid):# 如果中間版本是錯誤的,第一個錯誤版本可能是mid或在mid左側# 因此更新右邊界為mid(注意:沒有減1,因為mid可能就是答案)right = midelse:# 如果中間版本不是錯誤的,第一個錯誤版本必然在mid右側# 因此更新左邊界為mid + 1left = mid + 1# 循環結束時,left和right指向同一個位置,即第一個錯誤版本return left

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/910428.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/910428.shtml
英文地址,請注明出處:http://en.pswp.cn/news/910428.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【圖像處理入門】11. 深度學習初探:從CNN到GAN的視覺智能之旅

摘要 深度學習為圖像處理注入了革命性動力。本文將系統講解卷積神經網絡(CNN)的核心原理,通過PyTorch實現圖像分類實戰;深入解析遷移學習的高效應用策略,利用預訓練模型提升自定義任務性能;最后揭開生成對抗網絡(GAN)的神秘面紗,展示圖像生成與增強的前沿技術。結合代…

C++法則4: 如果一個構造函數的第一個參數是自身類類型的引用,且任何額外參數都有默認值,則此構造函數是拷貝構造函數。

C法則4&#xff1a; 如果一個構造函數的第一個參數是自身類類型的引用&#xff0c;且任何額外參數都有默認值&#xff0c;則此構造函數是拷貝構造函數。 拷貝構造函數的定義&#xff1a; 第一個參數是自身類類型的引用&#xff1a; 必須是引用&#xff08;通常為const引用&…

從頭搭建環境安裝k8s遇到的問題

基本信息 master節點IP&#xff1a; 172.31.0.3 node01節點IP&#xff1a;172.31.0.4 node02節點IP&#xff1a;172.31.0.5 子網掩碼&#xff1a;255.255.0.0 網關&#xff1a;172.31.0.2 DNS:114.114.114.114 安裝前要檢查的信息 檢查三臺主機的mac地址是否重復&#xff1a…

Flask入門指南:從零構建Python微服務

1. Flask 是什么&#xff1f; Flask 是一個 微框架&#xff08;Microframework&#xff09;&#xff0c;特點包括&#xff1a; 輕量靈活&#xff1a;核心僅包含路由和模板引擎&#xff0c;其他功能通過擴展實現易于學習&#xff1a;代碼直觀&#xff0c;適合快速開發小型應用…

【LINUX網絡】網絡socet接口的基本使用以及實現簡易UDP通信

根據本系列上兩篇關于網絡的初識介紹&#xff0c;現在我們開始實現一個UDP接口&#xff0c;以加強對該接口的理解。 1 . 服務器端 在本篇中&#xff0c;主要按照下面內容來實現&#xff1a; 創建并封裝服務端&#xff1a;了解創建服務端的基本步驟 創建并封裝客戶端&#xff0…

MySQL的索引事務

索引 是什么 類似于目錄&#xff0c;提高查詢的速度&#xff0c;但是本身會占用空間&#xff0c;增刪數據的時候也需要維護索引。所以查詢操作頻繁的時候可以創建索引。如果非條件查詢列&#xff0c;或經常做插入、修改操作&#xff0c;或磁盤空間不足時&#xff0c;不考慮創…

安卓9.0系統修改定制化____第三方美化 bug修復 移植相關 輔助工具 常識篇 八

在修改rom中。有時候不可避免的需要對系統進行美化以及一些第三方系統的bug修復。在操作前需要了解系統的一些基本常識。例如同平臺移植 跨平臺移植以及內核移植 apk反編譯等等相關的知識。今天解析的這款工具雖然不是直接面向安卓9.0.但對于了解以上的一些必備常識還是不錯的 …

云服務器與物理服務器對比:選擇最適合的業務服務器解決方案

更多云服務器知識&#xff0c;盡在hostol.com 在現代 IT 基礎設施中&#xff0c;云服務器與物理服務器是兩種常見的服務器解決方案。隨著云計算技術的迅猛發展&#xff0c;越來越多的企業開始轉向云服務器&#xff0c;但也有一些企業仍然堅持使用物理服務器&#xff0c;尤其是…

【redis使用場景——緩存——雙寫一致性】

redis使用場景——緩存——雙寫一致性 雙寫一致性問題的本質與場景典型不一致場景分析??并發寫操作導致的不一致????讀寫交叉導致的不一致????主從同步延遲導致的不一致?? 解決延遲雙刪策略&#xff08;推薦&#xff09;優點??&#xff1a;??缺點??&#xff…

【ArcGIS】在線影像底圖調用

【ArcGIS】在線影像底圖調用 一、 歷史影像的調用二、ArcGIS online底圖調用三、結語 一、 歷史影像的調用 ESRI官方推出了World Imagery Wayback是一個提供全球范圍內歷史影像的在線服務。 官網地址&#xff1a;https://livingatlas.arcgis.com/wayback/ 操作步驟&#xff1…

密度估計:從零星足跡重建整體畫像

想象你是一位偵探&#xff0c;案發現場只留下幾個零散的腳印。**如何通過這些碎片&#xff0c;推斷嫌疑人的身高體重&#xff1f;甚至預測他下一步的藏身之處&#xff1f;** 這種從局部反推整體的能力&#xff0c;正是**密度估計&#xff08;Density Estimation&#xff09;** …

B004基于STM32F401單片機簡易交通燈實訓數碼管顯示設計仿真資料

視頻演示地址:https://www.bilibili.com/video/BV1GvNDzFEd9/ 運行環境 仿真軟件:proteus8.17(切記別的版本不能運行) 編程軟件:MDK525 STM32 cubmx版本:6.11.1(切記別的版本不能運行) 原理圖畫圖軟件:AD10 功能說明&#xff1a; 以STM32F401CB單片機為核心簡易交通燈功能如下。…

沒掌握的知識點記錄

1、微內核的主要優點在于結構清晰、內核代碼量少&#xff0c;安全性和可靠性高、可移植性強、可伸縮性、可擴展性高&#xff1b;其缺點是難以進行良好的整體優化、進程間互相通信的開銷大、內核功能代碼不能被直接調用而帶來服務的效率低。 2、題目&#xff1a; 分頁內存管理…

linux 遠程終端執行qt應用顯示到接入的物理顯示器上

在顯示器打開終端執行&#xff1a; xhost local: 在遠程終端執行&#xff1a; export DISPLAY:0然后在終端執行qt應用就可以。 xhost local: 功能&#xff1a;允許本地用戶&#xff08;local:&#xff09;訪問 X 服務器&#xff08;X11 圖形系統&#xff09;。 原理&#xf…

【AI驅動網絡】

一、AI 驅動網絡 1.1 什么是網絡 1.1.1、網絡的定義 ?網絡是由若干節點?(如計算機、服務器、移動設備等)和連接這些節點的鏈路?(有線或無線傳輸介質)構成的系統,用于實現地理位置分散的獨立設備之間的信息交換、資源共享與協同工作。在計算機領域,網絡是信息傳輸、…

Python期末速成

一.基礎內容 賦值語句&#xff1a; a 1 b "mayday" 標識符規則&#xff1a; 1.字母&#xff0c;數字&#xff0c;下劃線&#xff0c;漢字組成。但數字不能開頭 2.不能是保留字 3.特殊符號不行&#xff0c;*&#xffe5;^等 注釋是在語句前面加&#xff03; …

【時時三省】(C語言基礎)指針變量例子

山不在高&#xff0c;有仙則名。水不在深&#xff0c;有龍則靈。 ----CSDN 時時三省 存放地址的變量是指針變量&#xff0c;它用來指向另一個對象&#xff08;如變量、數組、函數等&#xff09;。 那么&#xff0c;怎樣定義和使用指針變量呢? 先分析一個例子。 例題 通過…

MATLAB代碼演示,TDOA定位的優化算法,提升Z軸的定位精度|復現《基于最小二乘法的室內三維定位算法研究》

本文復現文章: 王桂杰,焦良葆,曹雪虹.基于最小二乘法的室內三維定位算法研究[J].計算機技術與發展,2020,30(04):69-73.按照文章的核心算法,復現了TDOA下的最小二乘在三維環境中的改進定位方法,方法可以明顯提升Z軸的定位精度 文章目錄 概述運行結果展示matlab代碼完整代碼概…

React useState 原理

Fiber架構 React16 之后 提升顯示性能 電腦屏幕參數刷新率 表示1s刷新次數 頁面渲染 和 JS代碼執行 共享一個線程 互斥 保持上一幀圖像表現&#xff1a;卡頓 reconcilier改為 stack 和 fiber Fiber數據結構 執行單元 瀏覽器優先執行用戶響應相關或者界面渲染相關事件&#…

【Datawhale組隊學習202506】零基礎學爬蟲 01 初始爬蟲

系列文章目錄 01 初始爬蟲 02 數據解析與提取 文章目錄 系列文章目錄前言1 爬蟲和Python2 爬蟲的矛盾2.1 爬蟲與反爬2.2 robots核心字段重要規則說明非標準擴展指令協議生效條件局限性驗證工具 2.3 一個爬蟲demo 3 Web請求與HTTP協議3.1 一個web請求的全過程3.2 判斷頁面源代碼…