Leetcode 349. 两个数组的交集 解题思路及C++实现
生活随笔
收集整理的這篇文章主要介紹了
Leetcode 349. 两个数组的交集 解题思路及C++实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
解題思路:
先對數組進行排序,然后從小到大去找相同的元素。
程序大循環是遍歷兩個數組。
循環體內,當找到相等的數之后,要注意跳過重復的數字。
?
class Solution { public:vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {//先對這兩個數組進行排序sort(nums1.begin(), nums1.end());sort(nums2.begin(), nums2.end());//相當于給兩個數組分別設計了一個指針int i = 0;int j = 0;vector<int> res;while(i < nums1.size() && j < nums2.size()){if(nums1[i] == nums2[j]){res.push_back(nums1[i]);i++;j++;//跳過重復的元素while(i < nums1.size() && nums1[i] == nums1[i - 1]) i++;while(j < nums2.size() && nums2[j] == nums2[j - 1]) j++;}else if(nums1[i] < nums2[j]){i++;}else j++;}return res;} };?
總結
以上是生活随笔為你收集整理的Leetcode 349. 两个数组的交集 解题思路及C++实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Leetcode 242. 有效的字母异
- 下一篇: Leetcode 350. 两个数组的交