有一个阵列说[1,2,4,5,1]。我需要从中打印所有连续的子阵列。
输入:[1,2,4,5,1]
输出:
1
1,2
1,2,4
1,2,4,5
1,2,4,5,1
2
2,4
2,4,5
2,4,5,1
4
4,5
4,5,1
5
5,1
1
我尝试过但无法获得完整系列。
//items is the main array
for(int i = 0; i < items.length; i++) {
int num = 0;
for(int j = 0; j < items.length - i; j++) {
for(int k = i; k < j; k++) {
System.out.print(items[k]);
}
System.out.println();
}
}
答案 0 :(得分:3)
您只需进行2次更改。外循环迭代的次数与数组中的元素一样多,这是正确的。第一个内部循环应该使用外部循环的索引作为起始索引(int j = i
),否则总是从第一个元素开始。然后将内循环中断条件更改为k <= j
,否则i
不会打印最后一个元素。
// i is the start index
for (int i = 0; i < items.length; i++)
{
// j is the number of elements which should be printed
for (int j = i; j < items.length; j++)
{
// print the array from i to j
for (int k = i; k <= j; k++)
{
System.out.print(items[k]);
}
System.out.println();
}
}
答案 1 :(得分:1)
经过测试和工作!试试这个算法。
for(int i=0;i<items.length;i++) {
for(int j=i;j<items.length;j++) {
for(int k=i;k<=j;k++) {
System.out.print(items[k]);
}
System.out.println();
}
}
答案 2 :(得分:0)
尝试这样的事情:
for(int i=0; i<items.length; i++)
{
for(int j=i; j<items.length; j++)
{
System.out.print(items[j]);
}
System.out.println();
}
我还没有测试过,但它应该有效。
答案 3 :(得分:0)
问题似乎在于你的第二个循环:
for(int j=0;j<items.length-i;j++)
你总是在第一个地方跑步。你想要做的是从i运行到数组结束,如下:
for(int j=i;j<items.length;j++)
答案 4 :(得分:0)
试试这种方式。
int items[]={1,2,4,5,1};
for(int i=0;i<=items.length;i++)//items is the main array
{
int num=0;
for(int j=0;j<items.length;j++)
{
for(int k=i;k<=j;k++)
{
System.out.print(items[k]);
}
System.out.println();
}
}
答案 5 :(得分:0)
使用以下代码:
import java.io.*;
class stack
{
public static void main(String args[]) throws IOException
{
int items[]={1,2,4,5,1};
for(int i=0;i<items.length;i++)//items is the main array
{
for(int j=i;j<items.length;j++)
{
for(int k=i;k<=j;k++)
{
System.out.print(items[k]);
if (k==j)
continue;
else
System.out.print(",");
}
System.out.println();
}
}
}
}
答案 6 :(得分:0)
我认为这可能会有所帮助
for(int i=0;i<=items.length-1;i++)
{
for(int l=i;l<=items.length;l++)
{
int b[]=Arrays.copyOfRange(a, i,l);
for(int k=0;k<=b.length-1;k++)
{
System.out.print(b[k]);
}
System.out.println();
}
}
答案 7 :(得分:0)
// Javascript.
// Generate Array and print it.
function subArray(arr) {
if (arr.length < 1) return 0;
if (arr.length < 2) return arr[0];
let result = [];
for (let i = 0; i < arr.length; i++) {
const temp = [];
for (let j = i; j < arr.length; j++) {
temp.push(arr[j]);
result.push([...temp]);
console.log(temp.join(','));
}
}
return result
}
// Calculate only Sum of the subarrays.
function subArrSum(arr) {
if (arr.length < 1) return 0;
if (arr.length < 2) return arr[0];
let sum = 0;
for (let i = 0; i < arr.length; i++) {
sum += (arr.length - i) * (i + 1) * arr[i];
}
return sum;
}