LeetCode41?缺失的第一個正數

關聯LeetCode題號41

本題特點
  • 數組,哈希表
本題思路
  1. 找缺失的最小正數,看舉例說明缺失的正數,一種情況是連續的最小的正數,一種是缺失連續但不是最小的正數
  2. 驗證數組內數組是否連續,可以通過 nums[i]+1 是否存nums組成的哈希表,如果nums[i]+1 <= 0 不符合正數的條件,輕松解決,詳情看Java寫法
  3. 題目要求時間復雜度O(n)并且只使用常數級別額外空間的解決方案 ,就上難度了,hah Python 數組可以直接提供包含方法,哈哈哈,但是實際上還是通過哈希,不過我是菜雞 能AC就行
  4. Python寫法是好早之前寫的了,排序之后,如果當前值和下標一致說明是不缺少的,不一致為缺少,忘記當時從哪學習來的,不過時間復雜度不滿足O(n),因為排序了
Python寫法
def firstMissingPositive(self, nums: List[int]) -> int:# 優先把重復的,小于0的值過濾掉nums = list(filter(lambda x: x>0, list(set(nums))))if len(nums) == 0:return 1# 排序nums.sort()# 值和下標值比較,一致說明不缺少,不一致說明缺少for i in range(1, len(nums)+1):if i != nums[i-1]:return i# 補充缺少的值是數組最大值+1的情況return nums[len(nums)-1]+1
Java寫法
package leetcode;import org.junit.jupiter.api.Test;import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;/*** File Description: FirstMissingPositive_41* Author:* Date: 2025/4/30 09:39*/
public class FirstMissingPositive_41 {public int firstMissingPositive(int[] nums){Map<Integer, Integer> hashmap = new HashMap<>();int res = Integer.MAX_VALUE;for (int each: nums){hashmap.put(each, hashmap.getOrDefault(each, 0)+1);}if (hashmap.containsKey(1)){for (int i = 0; i < nums.length; i++){if (hashmap.containsKey(nums[i] + 1)) continue;else {// 不包含nums[i]+1 說明該值符合缺少條件// 判斷是不是正數if (nums[i]+1 <= 0) continue;else {// 判斷是不是最小res = Math.min(res, nums[i]+1);}}}return res;}else{// 不包含1,肯定缺少的最小正整數就是1return 1;}}@Testpublic void TestFirstMissingPositive(){int[] nums = {7,8,9,11,12};int res = firstMissingPositive(nums);System.out.println(res);}
}

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

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

相關文章

補題( Convolution, 二維卷積求輸出矩陣元素和最大值)

來源&#xff1a;https://codeforces.com/gym/105231/problem/H 題目描述&#xff1a; 一、題目分析 本題涉及深度學習中的二維卷積操作。給定一個nm的二維輸入矩陣I和一個kl的核矩陣K &#xff0c;通過特定公式計算得到(n - k 1)(m - l 1)的輸出矩陣O &#xff0c;要求在…

【Java ee初階】多線程(7)

一、線程池 線程池的一些參數&#xff1a; corePoolSize&#xff1a;核心線程數量 maximumPoolSize:核心線程數量臨時線程數量 上述是“java 的線程池策略”&#xff08;其他語言&#xff0c;其他庫的線程池可能不同&#xff09; keepAliveTime :臨時線程的存活時間.臨時線程…

Linux 常用指令詳解

Linux 操作系統中有大量強大的命令行工具&#xff0c;下面我將分類介紹一些最常用的指令及其用法。 ## 文件與目錄操作 ### 1. ls - 列出目錄內容 ls [選項] [目錄名] 常用選項&#xff1a; - -l&#xff1a;長格式顯示&#xff08;詳細信息&#xff09; - -a&#xff1a;顯…

uv安裝及使用

windows安裝參考&#xff1a; 什么是python uv&#xff0c;如何在windows上安裝uv&#xff0c;基礎的用法有哪些&#xff1f;_windows安裝uv-CSDN博客 https://zhuanlan.zhihu.com/p/6776864377 使用方式 方式1&#xff1a; 創建uv虛擬環境->激活環境->安裝依賴&…

C#實現Socket通信:基于TCP/IP協議的網絡編程

TCP/IP網絡模型 最上層的是應用層&#xff0c;也就是我們日常可以接觸到的&#xff0c;它會給數據添加對應的頭部&#xff0c;并傳輸給傳輸層&#xff0c;應用層是我們日常會接觸到的&#xff0c;比如HTTP&#xff0c;FTP&#xff0c;Telnet&#xff0c;DNS&#xff0c;SMTP。…

哈希算法、搜索算法與二分查找算法在 C# 中的實現與應用

在計算機科學中&#xff0c;哈希算法、搜索算法和二分查找算法是三個非常基礎且常用的概念。它們分別在數據存儲、數據查找、以及高效檢索等場景中起著至關重要的作用。在 C# 中&#xff0c;這些算法的實現和使用也十分簡便。本文將詳細講解這三種算法的原理、應用以及 C# 中的…

AI日報 · 2025年5月05日|雅詩蘭黛與微軟合作成立 AI 創新實驗室,加速美妝產品研發與營銷

1、蘋果與 Anthropic 深化合作&#xff0c;內部測試 AI 驅動的新版 Xcode 據多方報道&#xff0c;蘋果公司正與人工智能初創公司 Anthropic 合作&#xff0c;開發集成 AI 功能的新一代 Xcode 開發平臺。該平臺旨在利用 Anthropic 強大的 Claude Sonnet 模型&#xff0c;為開發…

python celery框架結合django的使用

學習目標&#xff1a; 通過文章了解celery的運行機制以及如何結合django去使用 熟悉celery的運行原理屬性celery在django項目當中的配置如何啟動運行celery框架 學習內容&#xff1a; 熟悉celery的運行原理&#xff0c;簡單來說 Celery 是一個“任務排隊機后臺處理器”。幫你…

滑動窗口leetcode 904

代碼&#xff1a; class Solution { public:int totalFruit(vector<int>& fruits) {int n fruits.size();unordered_map<int,int> window_type_count;int left 0;int ans 0;for(int right 0; right <n;right){while(window_type_count.size() 2 &&…

用可視化學習逆置法

1.逆置法思路 目標&#xff1a;將這個彩色數組向右旋轉3步 &#x1f534;1 → &#x1f7e0;2 → &#x1f7e1;3 → &#x1f7e2;4 → &#x1f535;5 → &#x1f7e3;6 → ?7我們希望得到 &#x1f535;5 → &#x1f7e3;6 → ?7 → &#x1f534;1 → &#x1f7e0;…

Cisco Packet Tracer 選項卡的使用

目錄 設備Config選項卡的使用 Realtime and Simulation模式&#xff08;數據包跟蹤與分析&#xff09; 設備Desktop選項卡的使用 設備Config選項卡的使用 Hostname NVRAM Startup Config----Load 加載 INTERFACE 點擊on Save 如果&#xff0c;不把Running Config保存為Sta…

pyqt寫一個單片機配置界面

已經實現以下功能 1.可以選擇單片機架構 2.選擇完單片機架構后第二個框可以選擇常見單片機型號 3.選擇完常見單片機型號后第三個框可以選擇內部資源如adc等&#xff08;可以選擇多個內部資源&#xff09;4.選擇完內部資源如adc等&#xff08;可以選擇多個內部資源&#xff09;后…

丟失的數字 --- 位運算

目錄 一&#xff1a;題目 二&#xff1a;算法原理 三&#xff1a;代碼實現 一&#xff1a;題目 題目鏈接&#xff1a; 268. 丟失的數字 - 力扣&#xff08;LeetCode&#xff09; 二&#xff1a;算法原理 三&#xff1a;代碼實現 class Solution { public:int missingNumb…

千鋒教育Ansible自動化運維實戰教程從入門到精通

簡介 介紹 Ansible 的基本概念、自動化運維優勢、應用場景及課程目標。 歡迎開啟 Ansible 學習之旅&#xff01; 你好&#xff01;作為一名學習者&#xff0c;你即將通過這個 Ansible 自動化運維實戰 課程&#xff0c;從零開始掌握自動化運維的超能力&#xff01;這個“簡介”…

深入理解 TensorFlow 的模型保存與加載機制(SavedModel vs H5)

深入理解 TensorFlow 的模型保存與加載機制&#xff08;SavedModel vs H5&#xff09; 在使用 TensorFlow 進行模型訓練后&#xff0c;模型的保存與加載是部署、復用和遷移學習的重要環節。TensorFlow 提供了兩種主要的保存格式&#xff1a;SavedModel 和 HDF5 (.h5)。本篇文章…

C++之特殊類設計及類型轉換

目錄 一、設計一個不能被拷貝的類 二、設計一個只能在堆上創建對象的類 三、設計一個只能在棧上創建對象的類 四、設計一個不能被繼承的類 五、設計一個只能創建一個對象的類(單例模式) 六、C語言中的類型轉換 七、C中的三類類型轉換 八、C強制類型轉換 8.1、為什么C需…

制作一款打飛機游戲36:調度編輯器

我們正在創建一個調度編輯器。嗯&#xff0c;這個名字聽起來可能有點奇怪&#xff0c;對吧&#xff1f;但如果你了解射擊游戲中的“調度”&#xff0c;那就是敵人出現的時間表。 你可能已經看到了&#xff0c;我們有一個可以滾動的關卡。現在&#xff0c;我想增加一些交互性&a…

wordperss AI插件:AI圖文+視頻+長尾關鍵詞自動生成,已內置deepseek、kimi全模型,支持簡單一鍵接入更多自定義API

【2.17最新版】Linkreate wordperss AI插件&#xff1a;AI圖文視頻長尾關鍵詞自動生成&#xff0c;已內置deepseek、kimi全模型。 支持自定義接入其它API&#xff0c;包括但不限于騰訊云API和它的deepseek模型 后臺只需要設置對應的API url 、模型 、API key,就可以讓插件調用…

從零開始學Python:開啟編程新世界的大門

在當今數字化時代&#xff0c;Python作為一門簡潔、高效且功能強大的編程語言&#xff0c;受到了越來越多人的喜愛與追捧。無論是數據科學、人工智能、Web開發&#xff0c;還是自動化腳本編寫&#xff0c;Python都展現出了卓越的能力。本文將帶領大家踏上Python學習之旅&#x…

【PostgreSQL數據分析實戰:從數據清洗到可視化全流程】3.2 缺失值檢測與處理(NULL值填充/刪除策略)

&#x1f449; 點擊關注不迷路 &#x1f449; 點擊關注不迷路 &#x1f449; 點擊關注不迷路 文章大綱 缺失值檢測與處理全攻略&#xff1a;NULL值填充與刪除策略實戰3.2 缺失值檢測與處理3.2.1 缺失值類型與業務影響3.2.1.1 缺失值的三種形態3.2.1.2 業務影響分級 3.2.2 缺失值…