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 個缺失的正整數(簡單)陣列
- leetcode410分割陣列的最大值(二分+貪心,困難)LeetCode陣列
- 【LeetCode Hot 100】4. 尋找兩個正序陣列的中位數LeetCode陣列
- GO實現:leetcode之尋找兩個正序陣列的中位數GoLeetCode陣列
- LeetCode-兩個排序陣列的中位數LeetCode排序陣列
- LeetCode 4. 兩個排序陣列的中位數LeetCode排序陣列
- LeetCode-4. 兩個排序陣列的中位數LeetCode排序陣列
- Some 困難的數論
- LeetCode 不只是題解(10.正規表示式匹配[困難])LeetCode
- 【LeetCode-陣列】陣列式整數加法LeetCode陣列
- 尋找兩個正序陣列中的中位數陣列
- leetcode 349. 兩個陣列的交集LeetCode陣列
- LeetCode-349-兩個陣列的交集LeetCode陣列
- LeetCode--尋找兩個有序陣列的中位數(05)LeetCode陣列
- 4. 尋找兩個正序陣列的中位數陣列
- Leetcode[陣列] 18. 四數之和LeetCode陣列
- [陣列]Leetcode15三數之和陣列LeetCode
- LeetCode989——陣列形式的整數加法LeetCode陣列
- leetcode:1326. 灌溉花園的最少水龍頭數目(dp,困難)LeetCode
- 陣列中未出現的最小正整數陣列
- LeetCode第4題:尋找兩個有序陣列的中位數LeetCode陣列
- LeetCode-350-兩個陣列的交集 IILeetCode陣列
- MYSQL練習題:給定數字的頻率查詢中位數(Leetcode困難)MySqlLeetCode
- 【LeetCode-陣列】查詢大多數元素LeetCode陣列
- 尋找兩個正序陣列的中位數問題,方法一:合併陣列檢索法陣列
- 陣列中每個陣列元素出現的次數陣列
- LeetCode-448-找到所有陣列中消失的數字LeetCode陣列
- [LeetCode 刷題] 4. 尋找兩個有序陣列的中位數 (Hard)LeetCode陣列
- LeetCode題解(1550):陣列中存在連續三個奇數(Python)LeetCode陣列Python
- 一個陣列和另一個陣列比較,如果第一個陣列裡面有的就不新增了陣列
- 缺失的運維,困頓的共享單車運維
- leetcode:確實的第一個整數(java)LeetCodeJava
- LeetCode刷題—陣列LeetCode陣列
- 【LeetCode】88. 合併兩個有序陣列LeetCode陣列
- 輸入一個整數陣列,輸出奇偶數相間排列的陣列陣列