leetcode_350两个数组的交集2

2020-07-13  本文已影响0人  看到这朵小fa了么

1、暴力破解,循环找,找到则在数组中剔除

var intersect = function(nums1, nums2) {
  let result = []
  for(let i=0; i<nums1.length; i++) {
      let index = nums2.findIndex(item => item === nums1[i])
      if(index>-1) {
          result.push(nums1[i])
          nums2.splice(index,1)
      }
  }
  return result
};

2、单指针,首先排序后从前对比,匹配则都后移一位,不匹配则小的后移一位

var intersect = function(nums1, nums2) {
  let result = []
  let i=0
  let j=0
  nums1.sort((a,b) => a - b)
  nums2.sort((a,b) => a - b)
  while(i<nums1.length && j<nums2.length) {
      if(nums1[i] === nums2[j]){
          result.push(nums1[i])
          i++
          j++
      } else {
          if(nums1[i] < nums2[j]){
              i++
          } else {
              j++
          }
      }
  }
  return result
};
上一篇下一篇

猜你喜欢

热点阅读