java中的递归(包括数组)
嘿,我有一个java代码,想知道它做什么java中的递归(包括数组),java,arrays,recursion,Java,Arrays,Recursion,嘿,我有一个java代码,想知道它做什么 public class HelloWorld{ public static int w(int []a, int start, int k) { if (start==k) return start; else { int m = w(a, start, k-1); if(a[m] > a[k]) return m; else return k; } } pub
public class HelloWorld{
public static int w(int []a, int start, int k)
{
if (start==k) return start;
else
{
int m = w(a, start, k-1);
if(a[m] > a[k]) return m;
else return k;
}
}
public static void main(String []args){
int [] arr = {1,3,2,8,3,6,9};
System.out.println(w(arr, 1, 5));
} }
输出为
3
。谢谢 代码查找给定两个索引之间最大元素的索引,start
和k
对于给定的输入,在索引
1
和5
之间,子数组是3,2,8,3,6
,其中最大的元素是8
,它在原始数组中具有索引3
。您是否尝试过手动遍历代码,就像您是计算机一样,然后写下每一步的作用?也许加载并测试一下?或者你现在正在写测试?我投票决定结束这个问题,因为它可以用Debugger解决。非常感谢你的解释。:)是你自己发现的吗?不客气。是的,我仔细研究了代码并在脑海中运行了它。只需一点输入,就可以记住之前的状态并找出它的作用。是的,我想。发现声明一个整数并将一个值作为另一个递归函数非常有用confusing@IlanYashuk问题是你会在编程/计算机科学中发现许多类似的问题。