Java 递归序列
我试图编写一个程序,使用递归检查数组中是否有序列 {2,4,6,8}将返回true,而(2,4,6,5}将返回false。 这就是我目前所拥有的…蒂亚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++) {
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
是否在末尾。不传递子数组,而是向函数添加两个参数-当前考虑的数组的开始索引和结束索引(或开始索引和长度)。然后在执行递归调用时,传递数组和这两个参数的新值
注意:由于静态数组由指向其第一个元素的指针传递,因此不会在每次调用时复制元素
注意:事实上,使用递归解决这个问题比使用迭代更难