39. 组合总和
2021/5/12 11:02:37
本文主要是介绍39. 组合总和,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
package leetcode; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class demo_39 { public List<List<Integer>> combinationSum(int[] candidates, int target) { List<List<Integer>> list=new ArrayList<List<Integer>>(); Arrays.sort(candidates); backtrack(list, new ArrayList<Integer>(), candidates, target,0); System.out.println(list); return list; } public void backtrack(List<List<Integer>>list,List<Integer> li,int[] nums,int target,int j) { if(sumList(li)==target) { list.add(new ArrayList<Integer>(li)); }else { for(int i=j;i<nums.length;i++){ //当前数组的起始位置不能超过上一次循环的起始位置 j=i; li.add(nums[i]); if(sumList(li)<=target) { backtrack(list, li, nums, target,j); } else { li.remove(li.size()-1); break; } li.remove(li.size()-1); } } } //判断当前List中的和是否满足target public int sumList(List<Integer> li) { int sum=0; for(int i:li) { sum=sum+i; } return sum; } public static void main(String[] args) { // TODO Auto-generated method stub demo_39 d39=new demo_39(); int candidates[]= {2,3,6,7}; d39.combinationSum(candidates, 7); } }
这篇关于39. 组合总和的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Java中定时任务实现方式及源码剖析
- 2024-11-24Java中定时任务实现方式及源码剖析
- 2024-11-24鸿蒙原生开发手记:03-元服务开发全流程(开发元服务,只需要看这一篇文章)
- 2024-11-24细说敏捷:敏捷四会之每日站会
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解