注:给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。 仅供参考 public List<List<Integer>> threeSum(int[] nums) { long startTime = System.currentTimeMillis(); List<List<Integer>> listOut=new ArrayList<>(); int c=0; for(int i=0;i<nums.length;i++){ for(int j=0;j<nums.length;j++){ for (int k=0;k<nums.length;k++){ List<Integer> listIn = new ArrayList<>(); int sum = nums[i]+nums[j]+nums[k]; c +=1; if(sum==0 && i!=j && j!=k && i!=k){ listIn.add(0,nums[i]); listIn.add(1,nums[j]); listIn.add(2,nums[k]); Collections.sort(listIn); listOut.add(listIn); } } } } System.out.println(c); //显示毫秒数 long endTime = System.currentTimeMillis(); System.out.println(endTime-startTime); HashSet h = new HashSet(listOut); listOut.clear(); listOut.addAll(h); return listOut; } 上为暴力求解O(n^3),运行结果应该无误,三重for运行时间超时,需要优化。