三数之和

2020-09-19  本文已影响0人  行走的蛋白质
let nums = [-1, 0, 1, 2, -1, -4]
function threeSum(arr) {
  let result = []
  for(let i = 0; i < arr.length; i++) {
    for(let j = i + 1; j < arr.length; j++) {
      for(let k = j + 1; k < arr.length; k++) {
        if(arr[i] + arr[j] + arr[k] === 0) {
          result.push([arr[i], arr[j], arr[k]])
        }
      }
    }
  }
  return result
}
function threeSum(arr) {
  let result = []
  let hash = {}
  for(let i = 0; i < arr.length; i++) {
    for(let j = i + 1; j < arr.length; j++) {
      if(hash[arr[j]] !== undefined) {
        result.push([arr[j]].concat(hash[arr[j]]))
        hash[arr[j]] = undefined
      } else {
        let mark = 0 - arr[i] - arr[j]
        hash[mark] = [arr[i], arr[j]]
      }
    }
  }
  return result
}
上一篇 下一篇

猜你喜欢

热点阅读