精華區beta Marginalman 關於我們 聯絡資訊
20240702 350. Intersection of Two Arrays II Given two integer arrays nums1 and nums2, return an array of their intersection. Each element in the result must appear as many times as it shows in both arrays and you may return the result in any order. 要找兩個array共通的element 所以其中一個先計數 然後另一個逐一比對是否有在第一個出現 vector<int> intersect(vector<int>& nums1, vector<int>& nums2) { int maxV1 = *max_element(nums1.begin(), nums1.end()); cout << maxV1 << endl; vector<int> count(maxV1 + 1); for (int num : nums1) { count[num]++; } // for (int i = 0; i < maxV1 + 1; ++i) { // cout << i << ", " << count[i] << "," << endl; // } vector<int> inter; for (int num : nums2) { if (num <= maxV1 && count[num]) { inter.push_back(num); count[num]--; } } return inter; } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 73.173.211.221 (美國) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1719887535.A.527.html
sustainer123: 大師 07/02 10:32
Furina: 大師 07/02 10:36