有关数组的基础递归
来源:互联网 发布:中国网络资讯台无锡市 编辑:程序博客网 时间:2024/05/29 10:00
1.递归求数组中最大值
package yy.digui;public class Max {public static void main(String[] args) {// 用递归求一个整数数组a中的最大值int i = 0;int max = 0;int[] a = {9, 3, 10, 2, 6, 2, 19};i = a.length;max = f(a, i);System.out.println(max);}static int f(int[] a, int i){if(i == 1){return a[0];}else{return Math.max(f(a, i-1), a[i - 1]);}} }运行结果:19
2.递归求begin到end索引处的数组之和
package yy.digui;public class Sum {//从begin项开始到end项的和public static void main(String[] args) {int[] a = {1, 2, 3, 4, 5, 6};int sum = 0;//sum = f(a, 5);sum = f(a, 0, 5);System.out.println(sum);}//从begin到最后一项的和/*public static int f(int[] a, int begin){int sum = 0;if(begin == a.length){return 0;}else{sum = f(a, begin + 1);return sum = sum + a[begin];}}*///从第一项到end项的和/*public static int f(int[] a, int end){int sum = 0;if(end < 0){return 0;}elsesum = f(a, end-1);return sum += a[end];}*///从begin项开始到end项的和/*private static int f(int[] a, int begin, int end) {int sum = 0;if(begin > end){return 0;}else{sum = f(a, begin, end-1);return sum += a[end];}}*///从begin项开始到end项的和private static int f(int[] a, int begin, int end){int sum = 0;if(begin > end){return 0;}else{sum = f(a, begin+1, end);return sum += a[begin];}}}运行结果:21
3.不放回取球
package yy.digui;public class Getball {public static void main(String[] args) {int x = f(10, 3);System.out.println(x);}//n个球中取m个球(不放回),有多少种取法public static int f(int n, int m){//如果取得球数大于总球数,则没有取法if(n < m){return 0;}//如果取得球数等于总球数,则只有一个取法if(n == m){return 1; }//取的球数为0,则只有一个取法if(m == 0){return 1;}//设有一个球是我们想要取的球, 可能有两个情况,第一个情况 球已经被我们取了,剩下只要在n-1个球中取m-1个,另一个情况是没取到想要的球, 即 在剩下的n-1个球取 m个球return f(n - 1, m - 1) + f(n - 1, m);}}
运行结果:120
阅读全文
2 0
- 有关数组的基础递归
- 有关递归的问题
- 有关数组的运算
- 数组有关的函数
- 有关数组的知识点
- 有关数组的运算
- 有关类的基础
- 有关递归
- 有关递归
- 递归数组的算法:
- 有关递归的若干例子收集
- 几个有关递归的算法题
- Ruby 有关`迭代器' 与 `递归' 的替换.
- 有关二叉树的递归算法
- 有关回旋数组的程序
- java有关数组的问题
- 有关二维数组的动态分配
- 有关字符数组的若干问题
- jQuery获取格式化当前时间
- Kotlin Reference (三) Coding Conventions
- 雷军给程序员的五点建议--如何成为编程高手并以此创业
- [Muduo网络库源码分析] (5) base/FileUtil.cc_h_文件操作
- Scala定义函数的5种方式
- 有关数组的基础递归
- 改变this指向(call、apply、bind)
- cannot simultaneously fetch multiple bags[]不能抓取一对多的属性
- iOS pop到指定页面
- struts2把action交给spring托管
- 一个邮件钓鱼木马的分析 (一)
- 上拉加载
- JVM调优魔法棒-Java VisualVM
- I NEED A OFFER!