LeetCode - LCR 173. 點名

題目

LCR 173. 點名 - 力扣(LeetCode)

思路

首先對數組進行排序,使學號按順序排列

在排序后的數組中,如果沒有缺失的學號,那么每個元素應該等于其索引值

使用二分查找找到第一個不等于其索引的元素位置:

  • 如果?records[mid] == mid,說明缺失的數字在右半部分
  • 如果?records[mid] > mid,說明缺失的數字在左半部分(包括mid)

循環結束時,left?指向的是第一個不等于其索引的位置,即缺失的學號

時間復雜度:O(n?log n),主要是排序的時間復雜度

空間復雜度:O(1),只使用常數額外空間

讀者可能出現的錯誤寫法?

class Solution {
public:int takeAttendance(vector<int>& records) {int left = 0;int right = records.size()-1;while(left < right){int mid = left + (right - left)/2;if(records[mid] == mid){left = mid+1;}else{right = mid;}}return right;}
};

邊界情況處理:

你的代碼沒有處理缺失的是最后一個數字(即n-1)的情況。循環結束后,如果?records[right] == right,說明缺失的是最后一個數字。

正確寫法

class Solution {
public:int takeAttendance(vector<int>& records) {int left = 0;int right = records.size()-1;while(left < right){int mid = left + (right - left)/2;if(records[mid] == mid){left = mid+1;}else{right = mid;}}if(records[left] == right){return right+1;}return right;}
};

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

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

相關文章

VSCode如何優雅的debug python文件,包括外部命令uv run main.py等等

debug程序的方式有很多種。每一種方式都各有缺點:有的方式雖然優雅,但是局限性很大;有的方式麻煩,但是局限性小。 常規方式: 優點:然后可以觀察所有線程。一勞永逸。缺點:就是寫參數很麻煩,但是你可以讓chatgpt等大模型幫你寫。最最最優雅的方式: 優點:就是需要在代碼…

[調試技巧]VS Code如何在代理模式下使用 MCP 工具?

在開發環境調試MCP&#xff0c;通過agent模式與大模型對話&#xff0c;并不能保證每次均正確調用tool。在閱讀官方文檔之后&#xff0c;得知以下小技巧。 添加 MCP 服務器后&#xff0c;您可以在代理模式下使用它提供的工具。要在代理模式下使用 MCP 工具 打開聊天視圖 (CtrlAl…

京東零售基于Flink的推薦系統智能數據體系 |Flink Forward Asia 峰會實錄分享

京東推薦系統的數據體系極其復雜&#xff0c;從召回、模型到策略和效果評估&#xff0c;每個環節都需要強大的海量數據處理能力支撐。然而&#xff0c;在實際運行中&#xff0c;整個數據鏈路面臨著諸多挑戰&#xff1a;如實時與離線數據的埋點口徑不一致、數倉模型存在偏差、計…

[學習] 牛頓迭代法:從數學原理到實戰

牛頓迭代法&#xff1a;從數學原理到實戰 ——高效求解方程根的數值方法 文章目錄 牛頓迭代法&#xff1a;從數學原理到實戰一、引言&#xff1a;為什么需要牛頓迭代法&#xff1f;二、數學原理&#xff1a;幾何直觀與公式推導1. **核心思想**2. **幾何解釋**3. **收斂性分析*…

使用 Git 將本地倉庫上傳到 GitHub 倉庫的完整指南

使用 Git 將本地倉庫上傳到 GitHub 倉庫的完整指南 一、引言 在現代軟件開發中&#xff0c;版本控制工具 Git 已成為不可或缺的一部分。GitHub 作為全球最大的代碼托管平臺&#xff0c;為開發者提供了代碼協作、項目管理和開源貢獻的便捷方式。本文將詳細介紹如何通過 Git 將本…

數據結構 - 棧與隊列

棧&#xff1a;限定僅在表尾進行插入或刪除操作的線性表。 表尾端有特殊含義&#xff0c;稱為棧頂&#xff08;top&#xff09;。 相應的&#xff0c;表頭端稱為棧底&#xff08;buttom&#xff09;。不含元素的空表成為空棧。 棧又稱為后進先出的線性表&#xff08;Last In…

jojojojojo

《JOJO的奇妙冒險》是由日本漫畫家荒木飛呂彥所著漫畫。漫畫于1987年至2004年在集英社的少年漫畫雜志少年JUMP上連載&#xff08;1987年12號刊-2004年47號刊&#xff09;&#xff0c;2005年后在集英社青年漫畫雜志Ultra Jumphttps://baike.baidu.com/item/Ultra%20Jump/2222322…

統計學核心概念與現實應用精解(偏機器學習)

統計學聽起來似乎很復雜&#xff0c;但其實它的核心就是兩個概念&#xff1a;概率分布和期望。這兩個概念就像是我們日常生活中的決策助手。 概率分布描述了隨機事件各種可能結果出現的可能性大小。比如&#xff0c;擲骰子時每個點數出現的概率&#xff0c;這就是一個典型的概…

go-carbon v2.6.8 發布,輕量級、語義化、對開發者友好的 golang 時間處理庫

carbon 是一個輕量級、語義化、對開發者友好的 Golang 時間處理庫&#xff0c;提供了對時間穿越、時間差值、時間極值、時間判斷、星座、星座、農歷、儒略日 / 簡化儒略日、波斯歷 / 伊朗歷的支持。 carbon 目前已捐贈給 dromara 開源組織&#xff0c;已被 awesome-go 收錄&am…

228永磁同步電機無速度算法--基于雙重鎖相環的滑模觀測器

一、原理介紹 在傳統的正交鎖相環的基礎上&#xff0c;利用前述濾波器、ZOH、代數環等非理想因素對電流信號進行延遲重構&#xff0c;進而得到一個與實際電流信號存在相位偏差的重構信號&#xff0c;且該相位偏差等同于初步估計位置信號與實際位置信號之間的相位偏差。將該重構…

零基礎入門 線性代數

線性代數是一種代數結構&#xff0c;通俗來講&#xff0c;向量空間是這個結構的基石&#xff0c;我們要在向量空間中研究向量與向量的關系 一 對象&#xff1a;向量 各位都有對象嘛&#xff1f;如果沒有對象&#xff0c;想不想知道你們的天命之人是誰捏&#xff1f;如果有對象…

IO之cout格式控制

目錄 簡單了解cout是什么&#xff1f; 什么是字節流 默認格式控制 修改計數系統 調整字符寬度 填充字符 設置浮點數顯示精度 打印末尾的0和小數點 其他格式控制符 right--->設置為右對齊&#xff0c;永久生效 left--->設置為左對齊&#xff0c;永久生效 fixed--…

探索鑄鐵試驗平臺在制造行業的卓越價值

鑄鐵試驗平臺在制造行業中具有重要的價值和作用。以下是鑄鐵試驗平臺在制造行業中的卓越價值&#xff1a; 提高產品質量&#xff1a;鑄鐵試驗平臺可以模擬各種生產條件和環境&#xff0c;并對鑄鐵產品進行精確的測試和評估。通過實驗平臺的測試&#xff0c;可以發現產品在不同條…

gpt3大模型蒸餾后效果會變差么

模型蒸餾&#xff08;Model Distillation&#xff09;是將復雜的 “教師模型”&#xff08;如 GPT-3&#xff09;的知識遷移到更輕量級的 “學生模型” 上的技術。蒸餾后的模型效果是否會變差&#xff0c;取決于多種因素&#xff0c;不能一概而論。以下是詳細分析&#xff1a; …

SQL進階之旅 Day 30:SQL性能調優實戰案例

【SQL進階之旅 Day 30】SQL性能調優實戰案例 文章簡述&#xff1a; 在數據庫系統中&#xff0c;SQL查詢的性能直接影響到整個應用的響應速度和用戶體驗。本文作為“SQL進階之旅”系列的第30天&#xff0c;聚焦于SQL性能調優實戰案例&#xff0c;通過多個真實業務場景中的SQL優…

【61 Pandas+Pyecharts | 基于Apriori算法及帕累托算法的超市銷售數據分析可視化】

文章目錄 &#x1f3f3;??&#x1f308; 1. 導入模塊&#x1f3f3;??&#x1f308; 2. Pandas數據處理2.1 讀取數據2.2 數據信息2.3 數據去重2.4 訂單日期處理提取年份2.5 產品名稱處理 &#x1f3f3;??&#x1f308; 3. Pyecharts數據可視化3.1 每年銷售額和利潤分布3.2…

每日算法刷題Day31 6.14:leetcode二分答案2道題,結束二分答案,開始枚舉技巧,用時1h10min

7. 1439.有序矩陣中的第K個最小數組和(困難,學習轉化為373) 1439. 有序矩陣中的第 k 個最小數組和 - 力扣&#xff08;LeetCode&#xff09; 思想 1.給你一個 m * n 的矩陣 mat&#xff0c;以及一個整數 k &#xff0c;矩陣中的每一行都以非遞減的順序排列。 你可以從每一行…

springMVC-13 文件下載及上傳

文件下載-ResponseEntity<T> 說明 在SpringMVC中&#xff0c;通過返回ResponseEntity<T>的類型&#xff0c;可以實現文件下載的功能 核心代碼&#xff1a;就是設置HttpHeader 文件下載響應頭的設置 content-type 指示響應內容的格式 content…

數據庫學習筆記(十六)--控住流程與游標

前言&#xff1a; 學習和使用數據庫可以說是程序員必須具備能力&#xff0c;這里將更新關于MYSQL的使用講解&#xff0c;大概應該會更新30篇&#xff0c;涵蓋入門、進階、高級(一些原理分析);這一篇和上一篇差不多&#xff0c;當做擴展&#xff0c;用到的時候再查即可(畢竟數據…

《Origin畫百圖》之核密度圖

核密度圖&#xff08;Kernel Density Plot&#xff09; 是一種用于展示數據分布形態的可視化工具&#xff0c;它通過平滑的曲線來估計數據的概率密度函數&#xff0c;相比直方圖能更細膩地呈現數據的分布特征。 具體步驟&#xff1a; &#xff08;1&#xff09;選中數據&#…