Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 递归序列_Java_Recursion_Arrays - Fatal编程技术网

Java 递归序列

Java 递归序列,java,recursion,arrays,Java,Recursion,Arrays,我试图编写一个程序,使用递归检查数组中是否有序列 {2,4,6,8}将返回true,而(2,4,6,5}将返回false。 这就是我目前所拥有的…蒂亚 private static boolean arrPattern(int[] arr) { int sequence =arr[1]- arr[0]; for (int i=1;i<arr.length;i++) for(int j=2;j<arr.length;j++) {

我试图编写一个程序,使用递归检查数组中是否有序列 {2,4,6,8}将返回true,而(2,4,6,5}将返回false。 这就是我目前所拥有的…蒂亚

private static boolean arrPattern(int[] arr)
{
    int sequence =arr[1]- arr[0]; 

    for (int i=1;i<arr.length;i++)
        for(int j=2;j<arr.length;j++)
    {
        if (sequence == (arr[j]- arr[i]) & arr.length>0)
        {
            send the subarray (recursive)
        }
        else if (j-i !=sequence)
                     return false;
                    else
            return true;
    }

}
private静态布尔arrPattern(int[]arr)
{
int序列=arr[1]-arr[0];

对于(int i=1;i,可以通过传递数组和开始参数来实现:

private static boolean arrPattern(int[] arr)
{
    return arrPattern(int[] arr, 0);
}

private static boolean arrPattern(int[] arr, int startpos)
{
    ...
}

在递归调用中传递
startpos+1
,然后检查
startpos
是否在末尾。

不传递子数组,而是向函数添加两个参数-当前考虑的数组的开始索引和结束索引(或开始索引和长度)。然后在执行递归调用时,传递数组和这两个参数的新值

注意:由于静态数组由指向其第一个元素的指针传递,因此不会在每次调用时复制元素

注意:事实上,使用递归解决这个问题比使用迭代更难