如何找到数组的所有连续子数组组合并打印它
How to find all contiguous sub array combinations of an array and print it
我需要编写一个程序以特定格式打印数组的所有子数组。
Example-
I/o:
n = 3
A = (1,2,3) where n is the size of the array and A is the array itself.
O/p:
(1),(2),(3)
(1),(2,3)
(1,2),(3)
(1,2,3)
我能够使用两个循环获取所有子数组,但无法在这个特定的 order.I 编码中生成输出 Java。
我的代码如下:-
a[]→n个元素的整数数组
for(int i=0;i<a.length;i++){
String s = "";
for(int j=i;j<a.length;j++){
s = s + a[j] + " ";
System.out.println(s);
}
这段代码给出了所有可能的子数组,但不是所有可以从一个数组形成的传染性子数组组合。
如果没有递归,这有点困难。甚至递归对于这个方法来说也很难,因为你必须在递归方法内部循环,这很不寻常。
class Main {
static void printGroups(int[] a, int start, String output) {
output += "(" + a[start];
for (int i = start + 1; i < a.length; i++) {
printGroups(a, i, output + "),");
output += "," + a[i];
}
System.out.println(output + ")");
}
public static void main(String[] args) {
printGroups(new int[]{1, 2, 3, 4}, 0, "");
}
}
这输出:
(1),(2),(3),(4)
(1),(2),(3,4)
(1),(2,3),(4)
(1),(2,3,4)
(1,2),(3),(4)
(1,2),(3,4)
(1,2,3),(4)
(1,2,3,4)
解法符合题目要求,但我想警告,这些不都是子集组合.
缺少的组合是:
(4,2),(3,1)
(4,1),(2,3)
(2),(1,3,4)
(3),(1,2,4)
(2),{4),(1,3)
(1),(3),(2,4)
(2),(3),(1,4)
我需要编写一个程序以特定格式打印数组的所有子数组。
Example-
I/o:
n = 3
A = (1,2,3) where n is the size of the array and A is the array itself.
O/p:
(1),(2),(3)
(1),(2,3)
(1,2),(3)
(1,2,3)
我能够使用两个循环获取所有子数组,但无法在这个特定的 order.I 编码中生成输出 Java。 我的代码如下:- a[]→n个元素的整数数组
for(int i=0;i<a.length;i++){
String s = "";
for(int j=i;j<a.length;j++){
s = s + a[j] + " ";
System.out.println(s);
}
这段代码给出了所有可能的子数组,但不是所有可以从一个数组形成的传染性子数组组合。
如果没有递归,这有点困难。甚至递归对于这个方法来说也很难,因为你必须在递归方法内部循环,这很不寻常。
class Main {
static void printGroups(int[] a, int start, String output) {
output += "(" + a[start];
for (int i = start + 1; i < a.length; i++) {
printGroups(a, i, output + "),");
output += "," + a[i];
}
System.out.println(output + ")");
}
public static void main(String[] args) {
printGroups(new int[]{1, 2, 3, 4}, 0, "");
}
}
这输出:
(1),(2),(3),(4)
(1),(2),(3,4)
(1),(2,3),(4)
(1),(2,3,4)
(1,2),(3),(4)
(1,2),(3,4)
(1,2,3),(4)
(1,2,3,4)
解法符合题目要求,但我想警告,这些不都是子集组合.
缺少的组合是:
(4,2),(3,1)
(4,1),(2,3)
(2),(1,3,4)
(3),(1,2,4)
(2),{4),(1,3)
(1),(3),(2,4)
(2),(3),(1,4)