这是我看刚刚看的剑指offer上的一道面试题:用递归实现链表从后往前输出(c或c++),

我突然想用java试试,然后就有了这样一个小算法题:

任意一个一维数组,用递归实现从右往昨打印输出,下标从0开始,

比如一个数组:{1,2,3}
打印:3,2,1

首先分析一下这个小题:从0开始进入递归,递归到数组最后一个元素的时候,开始回溯输出,

如下代码:

public class Main {public static void main(String[] args) {int[] arr = new int[] {1,2,3,4,5,6,7,8,9};new Main().f(arr,0);}private void f(int[] arr,int index) {if(index<arr.length-1){f(arr,index+1);//递归}System.out.println(arr[index]); // 递归完毕后,回溯输出}
}

补充一点递归和数组的区别:

递归:你打开面前这扇门,看到屋里面还有一扇门。你走过去,发现手中的钥匙还可以打开它,你推开门,发现里面还有一扇门,你继续打开它。若干次之后,你打开面前的门后,发现只有一间屋子,没有门了。然后,你开始原路返回,每走回一间屋子,你数一次,走到入口的时候,你可以回答出你到底用这你把钥匙打开了几扇门。

循环:你打开面前这扇门,看到屋里面还有一扇门。你走过去,发现手中的钥匙还可以打开它,你推开门,发现里面还有一扇门(若前面两扇门都一样,那么这扇门和前两扇门也一样;如果第二扇门比第一扇门小,那么这扇门也比第二扇门小,你继续打开这扇门,一直这样继续下去直到打开所有的门。但是,入口处的人始终等不到你回去告诉他答案。

转载于:https://www.cnblogs.com/l199616j/p/10269199.html

递归回溯最简单易懂的小例子相关推荐

  1. 有趣的python代码实例_Python之路:200个Python有趣的小例子一网打尽

    概述 博主最近在学习python,看完了一整套学习视频,然后呃呃呃,还是用不太流畅.碰巧在全球最大的 同性交友论坛GayHub(呸!是开源代码托管平台Github)上面发现了一个项目,该项目列举了20 ...

  2. LeetCode—笔记—51、N皇后——递归回溯,个人思路,简单易懂

    LeetCode-笔记-51.N皇后--递归回溯,个人思路,简单易懂 51. N 皇后 n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 给你一个整数 ...

  3. ​【Python基础】告别枯燥,60 秒学会一个 Python 小例子(文末下载)

    本文推荐一个python的傻瓜式的学习资源,内容简单易懂,让人可以在60 秒学会一个 Python 小例子 当前库已有 300多 个实用的小例子 本文来源:https://github.com/jac ...

  4. 五个小例子教你搞懂 JavaScript 作用域问题

    原文:五个小例子教你搞懂 JavaScript 作用域问题 众所周知,JavaScript 的作用域和其他传统语言(类C)差别比较大,掌握并熟练运用JavaScript 的作用域知识,不仅有利于我们阅 ...

  5. 这42个Python小例子,太走心~

    告别枯燥,60秒学会一个Python小例子.奔着此出发点,我在过去1个月,将平时经常使用的代码段换为小例子,分享出来后受到大家的喜欢. 一.基本操作 1 链式比较 . i = 3 print(1 &l ...

  6. 算法之递归回溯(四)

    上一篇我们讲解了八皇后的问题:八皇后 这一篇我们将继续聊迷宫棋盘类问题.八皇后问题我们使用一维数组模拟二维数组,以获得较好的效率.接下来,我们将考虑使用二维数组求解迷宫棋盘类问题的解.其中比较典型的是 ...

  7. 回溯法之递归回溯和迭代回溯

      回溯法有通用解题法之称,它可以系统的搜索一个问题的所有解或者任意解.它在问题的解空间树中,按深度优先策略从根节点出发搜索解空间树,算法搜索至解空间树的任意一个结点时,先判断该节点如(子树)是否包含 ...

  8. 生成句法分析树以及从一个小例子来看词义消歧及语义角色标注

    一.生成句法分析树 把一句话按照句法逻辑组织成一棵树,由人来做这件事是可行的,但是由机器来实现是不可思议的,然而算法世界就是这么神奇,把一个十分复杂的过程抽象成仅仅几步操作,甚至不足10行代码,就能让 ...

  9. 迷宫算法之递归回溯python实现

    目录 没有目录了,别看了. 0. 概要 上一张我们谈到prim算法,这一张我们使用递归回溯算法来实现迷宫算法,相对于随机prim算法,这个算法更容易理解,并且提出的概念相对较小.但原理不太一样,,这也 ...

最新文章

  1. (转)IntelliJ Idea 的相关使用
  2. 《图解机器学习-杉山将著》读书笔记---CH1
  3. grade项目导入新external libraries_【易推荐】德意志银行学院中国项目启动
  4. 使用Struts 2的查询网格(无插件)
  5. 快捷指令 python_快捷指令 pythonista wifi连接上局域网(自动)唤醒主机电脑或投影仪...
  6. 【Maven】Maven slf4j-api 出现 NoClassDefFoundError:org/slf4j/event/LoggingEvent
  7. 整理一些质量不错的教程、博客、论坛
  8. 小甲鱼零基础入门python课后作业及答案_小甲鱼python视频第四讲(笔记及课后习题答案)...
  9. imagenet ILSVRC2012下载及其matlab处理方法
  10. 2021年中国人口数量、人口结构现状、男女比例及人口增长情况分析[图]
  11. 计算机维修5级,电脑芯片级维修教程
  12. 未检测到正确安装的网络适配器_网络适配器图标出现黄色感叹号的解决办法
  13. uploadify java 下载_java uploadify 实现文件上传
  14. 毕业论文排版及格式修改“骚操作”和常见误区(Word基础)
  15. 【转载】关于MSHTML
  16. android热补丁原理完bb霜,answered
  17. NLP机器阅读理解:四大任务及相应数据集、比赛
  18. Microsoft Excel 2000/2003修复工具
  19. Mybatis异常:java.lang.ClassNotFoundException: org.mybatis.spring.SqlSessionFactoryBean
  20. spring boot上传阿里云对象存储OSS快速上手(一、控制台简介)

热门文章

  1. delphi中的指针与C类似
  2. asp.net application,session,static 几种变量生命周期及用法 收藏
  3. 农行笔试,直接寄了,经验总结
  4. 程序员面试系列——合并排序(递归实现)
  5. Python实例 -- .git格式转为.png格式
  6. 白话详细解读(二)-----AlexNet
  7. C语言模拟实现(二)-----可变分区存储管理方式
  8. The 2018 ACM-ICPC Asia Qingdao Regional Contest, Online
  9. 曙光服务器2008系统,在中科曙光I620-G20服務器上安裝Windows 2008 R2 系統步驟
  10. mysql8.0其他机器访问_论文导读|基于机器学习的高速缓存预取