import java.util.*; import java.util.stream.Collectors; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @return int整型二维数组 */ public int[][] findTriplets (int[] nums) { // write code here int lp = 0, rpS = nums.length - 1, rp = nums.length - 1; Arrays.sort(nums); List<List<Integer>> result = new ArrayList<>(); while ((rp-lp) > 1) { for (int i = lp+1; i < rp; i++) { int curSum = nums[lp] + nums[i] + nums[rp]; if (curSum == 0) { List<Integer> recordL = new ArrayList<>(Arrays.asList(nums[lp], nums[i], nums[rp])); if (!result.contains(recordL)){ result.add(recordL); } } } if ((rp-lp) == 2){ lp += 1; rp = rpS; }else{ rp -= 1; } } int[][] finalResult = new int[result.size()][]; for (int i = 0; i < result.size(); i++){ finalResult[i] = new int[result.get(i).size()]; for (int j = 0; j < result.get(i).size(); j++){ finalResult[i][j] = result.get(i).get(j); } } return finalResult; } }