三数之和

threeSum(nums){
      nums = nums.sort((a,b) => {
        return a-b;
      }); // 先排序
      let i = 0;
      let arr = []; // 结果数组
      while(i < nums.length - 1){
        let a = nums[i],
            j = i + 1,
            k = nums.length - 1;
        while(j < k){
          let b = nums[j],
              c = nums[k];
          let sum = a + b + c;
          if(sum === 0)
            arr.push([a, b, c]);  // 存起来
          if(sum <= 0){
            while(nums[j] === b && j < k)
              j++;  // 第二个数
          }
          if(sum >= 0){
            while(nums[k] === c && j < k)
              k--;  // 最后一个数
          }
        }
        while(nums[i] === a && i < nums.length - 1)
          i++;  // 第一个数
      }
      return arr;
    },