import java.util.Arrays;/*** 列举数组中任意元素和为定值的组合*/
public class SolveProb {// Arrays.sort(arr);static int[] flag = new int[100];static int index = 0;// 记录当前public SolveProb() {        }public static void numGroupAll(int[] arr, int start, int length, int sum) {if (sum == 0) {for (int j = 0; j < index; j++) {System.out.print(flag[j]);}System.out.println();} else if(sum>0) {for (int i = start; i < length; i++) {flag[index++] = arr[i];SolveProb.numGroupAll(arr, i + 1, length-1, sum - arr[i]);} }index--;   //若sum<0  则表示该数不满足条件,需要index--, 因为之前假设该数满足条件 index++找该数下一个数}public static void numGroup(int[] arr, int start, int length, int sum) {if (sum == 0) {for (int j = 0; j < index; j++) {System.out.print(flag[j]);}System.out.println();} else if(sum>0) {for (int i = start; i < length; i++) {int temp_sum=sum - arr[i];if(temp_sum>=0) {flag[index++] = arr[i];// System.out.println(index);SolveProb.numGroup(arr, i + 1, length-1, sum - arr[i]);}else    //因为后面的数比这个大,若此时temp_sum小于0,则后面的数更不满足条件,不用再进行循环break;} }index--;//  System.out.println(index);}public static void main(String[] args) {int[] arr = { 1, 3, 2, 4, 5, 6, 7, 8, 9 };int sum = 7;//SolveProb.numGroupAll(arr, 0, arr.length, sum);//数组未排序Arrays.sort(arr);  //对数组进行排序后的话,可以用numGroup方法SolveProb.numGroup(arr, 0, arr.length, sum);}
}

Java 列举数组中任意元素和为定值的组合相关推荐

  1. Java输出数组中最长递增子序列的代码

    下面内容是关于Java输出数组中最长递增子序列的内容,希望对大伙有较大用途. package com.wzs;import java.util.ArrayList; import java.util. ...

  2. java替换数组中的元素_如何使用Java 8流快速替换列表中的元素

    java替换数组中的元素 假设您有一个项目清单: List<String> books = Arrays.asList("The Holy Cow: The Bovine Tes ...

  3. java向数组中增加新元素_用Java中的新元素替换List的给定索引处的元素

    java向数组中增加新元素 Given a list of the integers and we have to replace it an element from specified index ...

  4. java从数组中删除元素(数组的缩容)

    java从数组中删除元素(数组的缩容) 1,解决方案一 /* * 数组的缩容(删除元素) * 第一种解决方案 * 移动元素,被删除元素后面的元素往前移一位 * 优点:不需要创建新数组,省内存,速度快 ...

  5. java查询数组中元素的索引

    java查询数组中元素的索引 /*** java查询数组中元素的索引*/ public class Test03 {public static void main(String[] args) {in ...

  6. java数组元素序号,Java在数组中查找指定元素

    Java在数组中查找指定元素 以下实例演示了如何使用 contains () 方法来查找数组中的指定元素: Main.java 文件 import java.util.ArrayList; publi ...

  7. java删除数组中重复元素的方法

    java删除数组中重复元素的方法 方法一:for双循环 方法二:利用HashMap,储存元素 方法一:for双循环 1.声明int类型index,该数即可为不重复元素下标,还可统计数组中不重复元素的个 ...

  8. java删除数组中重复元素的几种方法

    Java操控数组,删除数组中所有的重复元素,使其数组元素全部唯一,有以下几种方法: 1,使用set(最好想到),set本身就是不重复的集合: package Array_test;import jav ...

  9. java删除数组中重复元素

    id="BAIDU_DUP_fp_iframe" src="https://pos.baidu.com/wh/o.htm?ltr="> > src= ...

最新文章

  1. 传感器融合带来多重好处
  2. 五 Android Studio打包Eegret App (包名和签名,打出正式包)
  3. 学会扶墙的机器人:没有什么能让我倒下!
  4. saltstack(八):saltstack配置管理-安装配置启动tomcat样例
  5. Ardino基础教程 13_温度传感器
  6. 计算机科学速成视频35,计算机科学速成课30:万维网【视频】
  7. P3203-[HNOI2010]弹飞绵羊【分块】
  8. Go语言的类型系统 - 翻译
  9. 除了写代码,程序员还能做哪些副业呢?
  10. wincc7的常用c语言,wincc几个常用c语言编程-20210324073153.docx-原创力文档
  11. windows bat 命令之%~dp0
  12. matlab 中norm函数的用法
  13. java山地车 故障,山地车骑行常见的10大问题及解决方案
  14. python速成_速成python
  15. 计算机专用计算器,功率计算器
  16. [市场前景]无线流媒体:无线运营商潜在的金矿?(转载)
  17. 推荐书籍---豆瓣9.2分---《编码:隐匿在计算机软硬件背后的语言》
  18. 深度学习之DCN-v2
  19. 开放平台设计之接口签名认证
  20. Eclipse集成Mybatis Generator及应用

热门文章

  1. 【分享】国内著名互联网企业PHP笔试题
  2. 【求职】有关面试和简历相关的总结与心得
  3. python爬取mblock的图片素材
  4. jmeter脚本之AES解密
  5. js my97 WdatePicker 联动触发change事件
  6. vscode win10笔记本 蓝屏_win10 最近突然频繁蓝屏
  7. 3.每天一个java小程序之累加累乘
  8. 使用umi快速搭建项目以及如何在umi中使用dva进行状态管理
  9. matlab2017b激活后打开报错License Manager Error -8
  10. 10000多套机械手毕业设计 课程设计 毕业论文 图纸 分享/上下料机械手、搬运机械手、苹果采摘机械手、液压机械手、三自由度机械手、水果采摘机械手、六自由度机械手、焊接机械手、码垛机械手、四自由……