See More

package LeetCode; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @Classname ThreeSum_15 * @Description TODO * @Date 19-5-22 上午8:35 * @Created by mao */ public class ThreeSum_15 { public List> threeSum(int[] nums) { Arrays.sort(nums); if(nums.length==0){ return new ArrayList<>(); } return kSum(nums,3,0,0); } public List> kSum(int[] nums, int k, int target,int startIndex){ List> res=new ArrayList<>(); if(nums.length-startIndex temp=new ArrayList<>(); temp.add(nums[i]); temp.add(nums[j]); while(istartIndex && nums[i]==nums[i-1]){ continue; } List>tempList=kSum(nums,k-1,target-nums[i],i+1); for(List temp:tempList){ //每一次的添加nums[i] temp.add(0,nums[i]); //添加到最终的结果中去 res.add(temp); } } } return res; } }