[关闭]
@snuffles 2019-04-02T17:06:33.000000Z 字数 808 阅读 976

L349 两个数组的交集

未分类


给定两个数组,编写一个函数来计算它们的交集。

解:数组n1,n2,给n1排序,遍历n2在n1中查找

  1. class Solution {
  2. public:
  3. vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
  4. set<int> res;
  5. // special case
  6. //if(nums1.empty()) return vector<int>(res.begin(),res.end());
  7. //if(nums2.empty()) return vector<int>(res.begin(),res.end());
  8. // sort one array2, find nums1 in nums2.
  9. sort(nums2.begin(),nums2.end());
  10. for(int i=0;i<nums1.size();i++){
  11. if (binarySearch(nums2,nums1[i])){
  12. res.insert(nums1[i]);
  13. }
  14. }
  15. return vector<int>(res.begin(),res.end());
  16. }
  17. bool binarySearch(vector<int>& nums2, int target){
  18. int left=0,right=nums2.size()-1,mid;
  19. while(left <=right){
  20. mid = left + (right-left)/2;
  21. if(nums2[mid]==target){ return true;}
  22. if(nums2[mid] > target) right = mid-1;
  23. else left = mid+1;
  24. }
  25. return false;
  26. }
  27. };
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注