题目:用递归的方法求一个数组中的最大元素。
思路:用一个变量m存储方法执行过程中的最大值,并不断更新,用一个变量n作为指针不断地枚举数组中的每一位,并与递归边界值和数组[m]对比.
示例代码:(仅作参考)
class Max{ public static void main(String[] args) { int[] arr = {1,2,3,6,5}; max(arr,0,1);//开始我们假设第一个数arr[0]为最大值,指针从第二个开始递归 } public static void max(int[] arr,int m,int n) { if(n == arr.length)//递归执行判断边界 { System.out.println(arr[m]); } else { if(arr[m] >= arr[n]) max(arr,m,n+1); else { m = n;//更新m,在方法执行过程中时刻保持当前最大值,直到数组最后个元素判断结束后在调用递归就符合n==数组长度,打印并结束 max(arr,m,n+1); } } } }
以上仅为简洁代码,如有需要可以换成集合类型,或者加入Scanner并用for来对数组初始化输入赋值,等等等,但基本思想不变。
0.0分
9 人评分
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:1884 |
弟弟的作业 (C++代码)浏览:1297 |
【出圈】 (C语言代码)浏览:794 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:694 |
C语言训练-求PI* (C语言代码)浏览:613 |
2005年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:647 |
C语言程序设计教程(第三版)课后习题10.3 (C语言代码)浏览:526 |
C语言程序设计教程(第三版)课后习题9.8 (C语言代码)浏览:598 |
母牛的故事 (C语言代码)浏览:1427 |
蓝桥杯历届试题-翻硬币 (C++代码)浏览:873 |