研发埠

标题: [编程题] 用递归求数组最大值的位置  [打印本页]

作者: 苏晓晓    时间: 2013-8-16 10:09
标题: [编程题] 用递归求数组最大值的位置 
很奇葩的一道题,初看很简单,结果想了很久才写出来:1.int max(const int a[], int n)2.{3.        if(n == 1)4.               return a[0];5.       int i = a[0];6.       int j = max(a+1, n-1);7.        if(i > j)8.               return i;9.       else10.               return j;11.}复制代码结果发现上面的代码是求最大值而不是他的位置……又想了很久始终无解(感觉思路被求最大值绕进去了),求高人解答ps:要求不用global variable,不用static,不可改变max函数的argument
作者: 王培培    时间: 2013-8-16 10:14
1、lz的思路已经很巧妙了,只要把返回值换回成数组的下标,注意比较时取数组值即可。2、代码中还要加一个容错处理,就是当输入值n<1时,(0或负数都可能),函数的返回值,或者做报错信号,或者兼容n=1处理。




欢迎光临 研发埠 (http://bbs.yanfabu.com/) Powered by Discuz! X3.2