两个数组的交集 II

  1. /**
  2. * @param {number[]} nums1
  3. * @param {number[]} nums2
  4. * @return {number[]}
  5. */
  6. var intersect = function(nums1, nums2) {
  7. // 先对数组 进行排序
  8. nums1.sort((a,b) => {return a-b})
  9. nums2.sort((a,b) => {return a-b})
  10. // console.log(nums1,nums2)
  11. // 定义双指针,循环次数小于各自数组的长度
  12. let i = 0,j = 0,newArr = [];
  13. while(i < nums1.length && j < nums2.length){
  14. // 如果前者大于后者,j++,继续查找是否有相同的值,反之同理
  15. if(nums1[i] > nums2[j]){
  16. j++;
  17. }else if(nums2[j] > nums1[i]){
  18. i++;
  19. }else{ //相等,指针都向后移一步
  20. newArr.push(nums1[i])
  21. i++;
  22. j++;
  23. }
  24. }
  25. console.log(newArr)
  26. return newArr
  27. };