Question

39. Combination Sum

Solution

分析:以candidates = [2,3,5], target=8来分析这个问题的实现,反向思考,用target 8减2,3,5这三个数,等到target为0的时候,所减过的数就是我们要求的一个结果。

Java实现:

public List<List<Integer>> combinationSum(int[] candidates, int target) {
List<List<Integer>> result = new ArrayList<>();
Arrays.sort(candidates); // 排序
search(candidates, target, result, new ArrayList<>(), 0);
return result;
} private void search(int[] candidates, int target, List<List<Integer>> ans, List<Integer> cur, int start) {
if (target == 0) {
ans.add(new ArrayList<>(cur)); // 浅拷贝
return;
} for (int i=start; i<candidates.length; i++) {
if (candidates[i] > target) break;
cur.add(candidates[i]);
search(candidates, target - candidates[i], ans, cur, i);
cur.remove(cur.size() - 1);
}
}

Reference

最新文章

  1. 【整理】Word OpenXML常用标签
  2. idea之internal java compiler error
  3. kkjcre1p: unable to spawn jobq slave process, slot 0, error 1089(Linux x86_64)补丁
  4. [原创]java WEB学习笔记103:Spring学习---Spring Bean配置:基于注解的方式(基于注解配置bean,基于注解来装配bean的属性)
  5. Html技巧 语义化你的代码
  6. HorizontalScrollView
  7. MySql数据库索引原理
  8. Spring AOP (上)
  9. autocapticalize和autocorrect
  10. Spark安装和配置
  11. python百科
  12. passwd命令限制用户密码到期时间
  13. console调试--转
  14. IAR和Keil文件包含路径设置
  15. 关于java和c++中的i++
  16. 深度学习系列 Part (2)
  17. ./graldew bash: ./gradlew: No such file or directory
  18. Linux网络协议栈(一)——Socket入门(2)
  19. THML DOM / Element 对象操作
  20. Xilinx FFT IP v9.0 使用

热门文章

  1. 路径规划—BUG算法
  2. 2_状态空间_State Space
  3. USB3.0接口EMC设计标准电路
  4. APICloud案例源码、模块源码、考试源码、开发工具大集合!赶快收藏
  5. React系列——websocket群聊系统在react的实现
  6. 一个动态波浪纹Android界面
  7. Android 预置APK
  8. 小程序安卓端播放不了音频解决方法wx.createInnerAudioContext()
  9. 【零碎小bug系列】安卓开发是遇到空指针异常java.lang.NullPointerException: Attempt to invoke...
  10. 解决关于ARM_MATH数学库宏定义的报错