1. 程式人生 > 其它 >349. 兩個陣列的交集

349. 兩個陣列的交集

做題思路 or 感想 :

  1,一眼暴力,但是如果純暴力的話又太費時,所以這裡用了一下set,其實某種意義上仍然是暴力?

  2,set的去重很好用,把vector倒進set,再把set倒回vector就可以實現去重,但是很費時間,只能說是走頭無路時的暴力解法了

 1 class Solution {
 2 public:
 3     vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
 4         unordered_set<int>HashSet (nums1.begin(), nums1.end()); //
把第一個num1去一下重,避免不必要的查詢 5 unordered_set<int>result; //存答案 6 for (int temp : nums2) { 7 if (HashSet.find(temp) != HashSet.end()) { //有一說一,容器裡的find是真的好用,雜湊表好多題都是要靈活運用find就可以極大簡化程式碼 8 result.insert(temp); //set沒有push,只有insert!!!! 9 } 10 }
11 return vector<int> (result.begin(), result.end()); //因為要求的是vector,所以要把set再轉化回vector 12 } 13 };