日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > leetcode No41. First Missing Positive

leetcode No41. First Missing Positive

來源:程序員人生   發布時間:2016-10-06 09:42:52 閱讀次數:2428次

Question:

Given an unsorted integer array, find the first missing positive integer.

For example,
Given [1,2,0] return 3,
and [3,4,⑴,1] return 2.

Your algorithm should run in O(n) time and uses constant space.

求第1個缺失的正數

Algorithm:

傳統的做法,排序然后遍歷找到nums[i]!=i+1的元素,復雜度O(nlogn)
可以用bucket sort思想,再開辟1個數組B,把元素作為B的下標寄存在數組B中,然后遍歷找到nums[i]!=i+1,復雜度為O(n),但是空間復雜度需要O(n)。
我們可以在nums中做類似桶排序的工作,如果nums[i]!=i+1,則交換nums[i]和下標為nums[i]⑴的元素,如果nums[i]不在1~n中則不動。

Accepted Code:

class Solution { public: void swap(int &x,int &y) { int tmp=x; x=y; y=tmp; } int firstMissingPositive(vector<int>& nums) { int i=0; while(i<nums.size()) { //nums[i]!=nums[nums[i]⑴]是避免元素相等的時候出現死循環 if(nums[i]!=i+1 && nums[i]>=1 && nums[i]<=nums.size() && nums[i]!=nums[nums[i]⑴]) swap(nums[i],nums[nums[i]⑴]); else i++; } for(int i=0;i<nums.size();i++) if(nums[i]!=i+1) return i+1; return nums.size()+1; } };



生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧美精品一级二级 | 久一精品| 欧美日韩精品二区 | 国产精品久久毛片av大全日韩 | 最新黄色免费网站 | 看全色黄大色黄大片男爽一次 | 欧美一级毛片免费看 | av网站在线免费观看 | 人人艹人人| 国产精品成人一区二区网站软件 | 国产精品美女一区二区三区 | 亚洲综合第一页 | 91在线精品秘密一区二区 | 天天干夜夜爽 | 综合插插 | 久久国产精品99国产 | 日韩一区在线视频 | 国产精品视频播放 | 久久精品久久久久电影 | 国产h在线观看 | 久久综合国产伦精品免费 | 国产情侣一区二区三区 | 国产suv精品一区二区四 | 国产精品久久久久久久久久三级 | 精品久久a | 欧美日韩中文字幕一区二区 | 综合久久狠狠色成人网 | 成人在线视频一区 | 国产高清在线精品一区二区三区 | 国产成人毛片 | 成人动漫在线看 | 中文字幕日韩视频 | 国产福利久久 | 精品视频在线播放 | 久久久久久一区二区三区四区别墅 | 国产伦精品一区二区免费 | 久久久久成人免费 | 一区视频在线 | 国产一区高清 | 亚洲欧美日韩在线不卡 | 国产精品一区二区久久久 |