leetcode41 缺失的第一個正數

給定一個未排序的整數數組,找出其中沒有出現的最小的正整數。

示例?1:

輸入: [1,2,0]
輸出: 3
示例?2:

輸入: [3,4,-1,1]
輸出: 2
示例?3:

輸入: [7,8,9,11,12]
輸出: 1
說明:

你的算法的時間復雜度應為O(n),并且只能使用常數級別的空間。

思路:把數字放到該放的地方。nums[i]=i+1

然后檢查哪個數不在即可。

class Solution {public int firstMissingPositive(int[] nums) {if(nums == null || nums.length == 0)return 1;int len = nums.length;for (int i = 0; i < len ; i++)while (nums[i] >0 && nums[i] <= len && nums[i]!=nums[nums[i]-1])swap(nums,i,nums[i]-1);int i = 0;while(i<len && nums[i] == i+1)i++;return i+1;}private void swap(int[] nums,int i, int j){int tmp = nums[i];nums[i] = nums[j];nums[j] = tmp;}
}

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

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

相關文章

Linux(10)-Make編譯,Configure

Make編譯機制,Configure1.Make機制demo1.make編譯demo2.make清理demo3:make 安裝demo4:make 卸載2.configure2.1 Autoconf2.2 軟件的源碼安裝軟件發布的一些基礎知識。gcc, cpp, as, ld–施工隊&#xff0c;底層干活工人make --包工頭&#xff0c;指揮工人工作configure–分析師…

redis排行榜之日排行周排行設計

排行榜功能是一個很普遍的需求。使用 Redis 中有序集合的特性來實現排行榜是又好又快的選擇。 一般排行榜都是有實效性的,比如“用戶積分榜”。如果沒有實效性一直按照總榜來排,可能榜首總是幾個老用戶,對于新用戶來說,那真是太令人沮喪了。 首先,來個“今日積分榜”吧,…

Linux(11)-Ubuntu裝系統

Ubuntu18.04裝系統單系統雙系統啟動項dell 5820進不去bios。單系統 裝過好多次ubuntu系統&#xff0c;每次要重裝之前總是得搜索各種教程。現在總結一份簡略教程如下&#xff0c;以備哪天裝系統之需。 1.官網上下載Ios文件:https://ubuntu.com/download/desktop 2.找一個U盤…

最近準備學習下mongodb(一 Windows安裝篇)

1 先安裝mongodb 的windows版本&#xff0c;Linux的我后期會加上的。 https://www.mongodb.com/dr/fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-ssl-4.0.0-signed.msi/download 2.安裝php擴展插件&#xff1a; https://pecl.php.net/package/mongo 根據自己的…

leetcode139 單詞拆分

給定一個非空字符串 s 和一個包含非空單詞列表的字典 wordDict&#xff0c;判定 s 是否可以被空格拆分為一個或多個在字典中出現的單詞。 說明&#xff1a; 拆分時可以重復使用字典中的單詞。 你可以假設字典中沒有重復的單詞。 示例 1&#xff1a; 輸入: s "leetcode…

Linux(12)-Ubuntu裝機后的基礎應用

Ubuntu裝機ssh服務器 sudo ps -e |grep ssh # 查看ssh 服務安裝情況 ssh-agent--ssh客戶端&#xff0c;連別人&#xff1b; sshd--ssh服務器&#xff0c; 被別人連 sudo apt-get update # 更新軟件源 sudo apt-get install openssh-server # 安裝ssh服務端ssh設置別…

OpenSSL編寫SSL,TLS程序

一、簡介:SSL(Secure Socket Layer)是netscape公司提出的主要用于web的安全通信標準,分為2.0版和3.0版.TLS(Transport Layer Security)是IETF的TLS 工作組在SSL3.0基礎之上提出的安全通信標準,目前版本是1.0,即RFC2246.SSL/TLS提供的安全機制可以保證應用層數據在互聯網絡傳輸不…

PRML(3)--Chapter2(上)-概率分布-二元變量、多項式變量、高斯分布、指數族分布

PRML第二章上-概率估計2.1二元變量2.1.1 beta 分布2.2 多項式變量2.3 高斯分布2.3.1條件高斯分布、2.3.2邊緣高斯分布2.3.3 高斯變量的貝葉斯定理2.3.4 高斯分布的最大似然估計2.3.5 順序估計2.3.6 高斯分布的貝葉斯推斷2.3.7 學生t分布2.3.8周期性變量2.3.9混合高斯分布2.4 指…

leetcode27 移除元素

給定一個數組 nums 和一個值 val&#xff0c;你需要原地移除所有數值等于 val 的元素&#xff0c;返回移除后數組的新長度。 不要使用額外的數組空間&#xff0c;你必須在原地修改輸入數組并在使用 O(1) 額外空間的條件下完成。 元素的順序可以改變。你不需要考慮數組中超出新…

Harris的角點檢測和特征匹配

一.特征檢測&#xff08;提取&#xff09; 基于特征的圖像配準方法是圖像配準中最常見的方法之一。它不是直接利用圖像像素值&#xff0c;二十通過像素值導出的符號特征&#xff08;如特征點、特征線、特征區域&#xff09;來實現圖像配準&#xff0c;因此可以克服利用灰度信息…

開始入坑深度學習(DeepLearning)

現在游戲越來越難做,國家廣電總局審核越來越變態,國家各種打壓游戲,游戲產業也成為教育失敗的背鍋俠,所以本人現在開始做深度學習方向。 深度學習研究的熱潮持續高漲,各種開源深度學習框架也層出不窮,其中包括TensorFlow、Caffe、Keras、CNTK、Torch7、MXNet、Leaf、The…

PRML(4)--Chapter2(下)-非參數估計

PRML第二章下-非參數估計1.直方圖2. 核方法3. K近鄰概率密度建模-參數化方法-概率密度的形式一定&#xff0c;由數據集確定密度中的參數即可。 局限性–概率模型選的不對&#xff0c;不能夠描述數據模態 此時&#xff0c;介紹一下非參數方法–直方圖&#xff0c;核方法&#…

《盤點那些秀你一臉的秒天秒地算法》(1)

本系列堅持格式&#xff1a;1個抖機靈算法2個較簡單但是天秀的算法1個較難天秀算法。 bogo排序 Bogo排序(Bogo-sort)&#xff0c;又被稱為猴子排序&#xff0c;是一種惡搞排序算法。 將元素隨機打亂&#xff0c;然后檢查其是否符合排列順序&#xff0c;若否&#xff0c;則繼續…

caffe安裝篇(一)

caffe我選擇使用ubuntu源碼安裝,所以先執行: sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev protobuf-compiler libhdf5-serial-dev sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev prot…

caffe2安裝篇(三)通過docker安裝

用普通的安裝方式走了不少彎路,感覺還是用docker方便: 參考的是https://hub.docker.com/r/caffe2ai/caffe2/ Latest docker pull caffe2ai/caffe2 Comes with GPU support, CUDA 8.0, cuDNN 7, all options, and tutorial files. Uses Caffe2 v0.8.1. GPU images (for us…

《盤點那些秀你一臉的秒天秒地算法》(3)

斐波那契之美 斐波那契數列&#xff08;Fibonacci sequence&#xff09;&#xff0c;又稱黃金分割數列、因數學家列昂納多斐波那契&#xff08;Leonardoda Fibonacci&#xff09;以兔子繁殖為例子而引入&#xff0c;故又稱為“兔子數列”。 這個數列就是1、1、2、3、5、8、13…

Linux(15)-

Linux下的編程開發

《盤點那些秀你一臉的秒天秒地算法》(4)

防止新手錯誤的神級代碼 #define ture true #define flase false #difine viod void #define mian main #define &#xff1b; ; 以后有新手問題就把這幾行代碼給他就好啦。 不用額外空間交換兩個變量 a 5 b 8 #計算a和b兩個點到原點的距離之和&#xff0c;并且賦值給…

Linux(16)-

Vim編輯器的使用

php生成有復雜結構的excel文檔

以前都用PHPExcel等工具來生成Excel&#xff0c;但是我們有時候需要非常復雜的樣式&#xff0c;比如有合并單元格和拆分單元格&#xff0c;甚至有顏色&#xff0c;行間距之類的&#xff0c;這樣做起來很費勁&#xff0c;而且你如果使用插件&#xff0c;你也需要學習這里我們可以…