#include #include #include #include #include #include using namespace std;
/*求兩個陣列的交集(三種方法)
1. 兩個指標,判斷三個大小
2. 兩個map存,另乙個map去找,value>1則說明重複
3. set標準庫自帶函式set_union(並集)set_intersection(交集)
*/vectorfun1(vectornum1, vectornum2)
else if (num1[index1] > num2[index2])
index2++;
else
index1++;
} return res;
}vectorfun2(vectornum1, vectornum2)
return res;
}vectorfun3(vectornum1, vectornum2)
int main()
; vectornum2;
vectorres = fun3(num1, num2);
for (auto i : res)
cout << i << " ";
cout << endl;
system("pause");
return 0;
}
#include #include #include #include #include #include using namespace std;
/*有序陣列去重
1. 兩個指標i,j,相等j右移,不等j指向的數字拷貝到i+1
2. 直接vector拷貝到set中
*/void fun1(vectornum)
void fun2(vector&num)
} num.resize(i + 1);
for (auto p : num)
cout << p << " ";
cout << endl;
}int main()
; fun2(num1);
system("pause");
return 0;
}
演算法題 有序陣列去重
將有序陣列去重並且列印去重之後的長度。快慢指標思想,邏輯上的指標,並非 這個指標 定義兩個指標slow,fast。fast逐個遍歷元素,如果與slow不同,則把slow所指元素列印出來,如果與slow所指元素相同,則fast 1,直至遍歷結束。include using namespace std ...
有序陣列 有序鍊錶高效去重
基本原理 第一步 初始化兩個指標,乙個慢指標slow 乙個快指標fast。第二步 判斷慢指標slow和快指標fast的值是否一致,如不一致,慢指標slow加1 並把快指標fast的值賦值給慢指標slow,然後快指標fast加1。第三步 繼續掃瞄後面的元素,如果慢指標slow和快指標fast的值一致,...
陣列去重 並集 交集 差集
一 去重 1 借助額外變數空間 es5 var arr 1,3,4,5,6,6,7,3,3,3 var newarr var obj function removeduplicates arr return newarr removeduplicates arr 1,3,4,5,6,7 2 不借助額...