如何降低空間複雜度 陣列本地操作
給定一個範圍在 1 ≤ a[i] ≤ n ( n = 陣列大小 ) 的 整型陣列,陣列中的元素一些出現了兩次,另一些只出現一次。
找到所有在 [1, n] 範圍之間沒有出現在陣列中的數字。
您能在不使用額外空間且時間複雜度為O(n)的情況下完成這個任務嗎? 你可以假定返回的陣列不算在額外空間內。
示例:
輸入:
[4,3,2,7,8,2,3,1]
輸出:
[5,6]
class Solution {
public:
vector<int> findDisappearedNumbers(vector<int>& nums) {
vector<int> vec;
int n=nums.size();
for(int i=0;i<n;i++)
{
int index=(nums[i]-1)%n; //取餘數還原陣列原來現場
nums[index]+=n; //相應數存在的話,下標對應的數肯定大於陣列長度
}
for(int i=0;i<n;i++)
{
if(nums[i]<=n)
vec.emplace_back(i+1);
}
return vec;
}
};
相關文章
- 如何不用演算法對陣列進行(0時間複雜度,0空間複雜度)排序?演算法陣列時間複雜度排序
- PHP陣列函式的時間複雜度清單PHP陣列函式時間複雜度
- 時間複雜度跟空間複雜度時間複雜度
- 時間複雜度與空間複雜度時間複雜度
- 時間複雜度和空間複雜度時間複雜度
- 時間複雜度怎麼算?如何計算時間複雜度?時間複雜度
- 時間複雜度O(n)和空間複雜度時間複雜度
- O1空間複雜度實現陣列迴圈右移_LeetCode189複雜度陣列LeetCode
- PHP 陣列排序(複雜字串)PHP陣列排序字串
- 說說你對演算法中時間複雜度,空間複雜度的理解?如何計算?演算法時間複雜度
- 122 演算法的時間複雜度和空間複雜度詳解演算法時間複雜度
- 圖解時間複雜度圖解時間複雜度
- 淺談時間複雜度時間複雜度
- dfs時間複雜度分析時間複雜度
- 時間複雜度(詳解)時間複雜度
- 時間與空間複雜度分析複雜度
- PHP 演算法基礎----時間複雜度和空間複雜度(轉載)PHP演算法時間複雜度
- 那些年忽略的知識:時間複雜度和空間複雜度詳解時間複雜度
- 阿斯蒂芬小技巧——列舉子集時間複雜度證明時間複雜度
- DDD之理解複雜度、尊重複雜度、掌控複雜度複雜度
- 時間複雜度的計算時間複雜度
- 易被忽略的知識點之 ---- 各種時間複雜度和空間複雜度時間複雜度
- 合併兩個有序陣列,其中有一個陣列長度足夠長,在O(1)的空間複雜度裡進行合併陣列複雜度
- 演算法的時間複雜度演算法時間複雜度
- 演算法(一)時間複雜度演算法時間複雜度
- 資料結構:時間複雜度資料結構時間複雜度
- 氣泡排序時間複雜度分析排序時間複雜度
- 常用的時間複雜度分析方法時間複雜度
- 演算法分析__時間複雜度演算法時間複雜度
- 卷演算法——時間複雜度演算法時間複雜度
- 演算法的空間複雜度演算法複雜度
- 解惑3:時間頻度,演算法時間複雜度演算法時間複雜度
- 冰與火之歌:「時間」與「空間」複雜度複雜度
- 自學 資料結構四月二十一日_時間複雜度&空間複雜度資料結構時間複雜度
- 資料結構-邏輯關係&物理關係、時間複雜度、空間複雜度、順序表資料結構時間複雜度
- 一文講透演算法中的時間複雜度和空間複雜度計算方式演算法時間複雜度
- 我們常說的演算法時間複雜度和空間複雜度到底是什麼?演算法時間複雜度
- 什麼才是真正的空間複雜度?複雜度