leetcode:41. 缺失的第一個正數(困難,陣列)
題目:
分析:
面試前看到的題,稍稍想了一下還是想出來了。
因為看到o(n)時間,一般要申請o(n)的空間,
如果給出了n個整數,要求出沒出現的最小的,最小的結果可能就是1-n,1-n都出現了的話就是1+n,用一個陣列A【n】,A【i】表示i是否出現出現過即可!
還不錯,希望面試時也有這個狀態。
程式碼:
class Solution {
public:
int firstMissingPositive(vector<int>& nums) {
vector<int> n(nums.size()+1,0);
int minn=0;
for(int i=0;i<nums.size();i++)
{
if(nums[i]<=0) continue;
if(nums[i]>nums.size()+minn) continue;
n[nums[i]-minn]=1;
}
for(int i=1;i<=nums.size();i++)
{
if(n[i]==0) return i+minn;
}
return nums.size()+1+minn;
}
};
相關文章
- LeetCode 41. 缺失的第一個正數LeetCode
- 演算法41. 缺失的第一個正數演算法
- leetcode 4. Median of Two Sorted Arrays 尋找兩個正序陣列的中位數(困難)LeetCode陣列
- 【陣列】1539. 第 k 個缺失的正整數(簡單)陣列
- 41. First Missing Positive(找到陣列中未出現的最小正整數)陣列
- 演算法學習-第一個缺失的正整數演算法
- leetcode410分割陣列的最大值(二分+貪心,困難)LeetCode陣列
- Some 困難的數論
- GO實現:leetcode之尋找兩個正序陣列的中位數GoLeetCode陣列
- 【LeetCode Hot 100】4. 尋找兩個正序陣列的中位數LeetCode陣列
- LeetCode-兩個排序陣列的中位數LeetCode排序陣列
- 尋找兩個正序陣列中的中位數陣列
- LeetCode 不只是題解(10.正規表示式匹配[困難])LeetCode
- LeetCode 4. 兩個排序陣列的中位數LeetCode排序陣列
- LeetCode-4. 兩個排序陣列的中位數LeetCode排序陣列
- 4. 尋找兩個正序陣列的中位數陣列
- 求一個陣列中沒有出現的最小正數陣列
- 陣列中未出現的最小正整數陣列
- 【LeetCode-陣列】陣列式整數加法LeetCode陣列
- 求陣列中未出現的最小正整數陣列
- LeetCode--尋找兩個有序陣列的中位數(05)LeetCode陣列
- 尋找兩個正序陣列的中位數問題,方法一:合併陣列檢索法陣列
- 陣列中每個陣列元素出現的次數陣列
- MYSQL練習題:給定數字的頻率查詢中位數(Leetcode困難)MySqlLeetCode
- leetcode 349. 兩個陣列的交集LeetCode陣列
- LeetCode-349-兩個陣列的交集LeetCode陣列
- leetcode:1326. 灌溉花園的最少水龍頭數目(dp,困難)LeetCode
- [陣列]Leetcode15三數之和陣列LeetCode
- Leetcode[陣列] 18. 四數之和LeetCode陣列
- LeetCode989——陣列形式的整數加法LeetCode陣列
- 缺失的運維,困頓的共享單車運維
- LeetCode第4題:尋找兩個有序陣列的中位數LeetCode陣列
- [LeetCode] Median of Two Sorted Arrays 兩個有序陣列的中位數LeetCode陣列
- JavaScript刪除陣列第一個元素JavaScript陣列
- 一個陣列和另一個陣列比較,如果第一個陣列裡面有的就不新增了陣列
- 機器學習最困難的部分:超引數除錯機器學習除錯
- 輸入一個整數陣列,輸出奇偶數相間排列的陣列陣列
- 兩個有序陣列的中位數陣列