如何从给定范围的阵列中打印所有子阵列?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从给定范围的阵列中打印所有子阵列?相关的知识,希望对你有一定的参考价值。

我要打印给定范围为2的数组中的所有子数组。例子

int a[] = 1,2,3,4;

对于上述范围2的子数组,像这样

1,2;
2,3;
3,4;

我有一个可打印数组的所有子数组的类,如下所示

 public class PrintSubarrayMain 

    public static void main(String args[])
        PrintSubarrayMain psm=new PrintSubarrayMain();
        int arr[]= 1,2,3,4;
        psm.printSubArray(arr);
    

    void printSubArray(int arr[])
    

        int n=arr.length;
        for (int i=0; i <n; i++) //This loop will select start element
        
            for (int j=i; j<n; j++)   //This loop will select end element
            
                for (int k=i; k<=j; k++) //This loop will print element from start to end

                
                    System.out.print( arr[k]+" "); 
                
                System.out.println();
            
        
    

它给出这样的输出

1 
1 2 
1 2 3 
1 2 3 4 
2 
2 3 
2 3 4 
3 
3 4 
4 

但是我不能打印特定范围的子数组?请帮帮我

答案

您可以执行以下操作:

public class PrintSubarrayMain 

    public static void main(String args[]) 
        PrintSubarrayMain psm = new PrintSubarrayMain();
        int arr[] =  1, 2, 3, 4 ;
        psm.printSubArray(arr);
    

    void printSubArray(int arr[])      
        for (int i = 0; i <arr.length-1; i++) 
            int [] subArr=new int[2];
            System.arraycopy(arr,i, subArr, 0, 2);
            for (int j=0;j<2;j++)
                System.out.print(subArr[j]+ " ");
            System.out.println();
               
    

输出:

1 2 
2 3 
3 4 

以上是关于如何从给定范围的阵列中打印所有子阵列?的主要内容,如果未能解决你的问题,请参考以下文章

计数子阵列的总和在[L,R]范围内

使用DO UNTIL LOOP从阵列打印最小数字

有啥方法可以加快打印阵列的速度吗?

Retrive在一个价格范围从PHP阵列匹配到特定日期数据

在分布式阵列系统中查找缺失的数字

c_cpp 所有子阵列的按位AND