关于递归:简单聊聊递归缓存分治回溯
一、初识递归递归函数 = 终止条件 + 递归关系终止条件: 当大问题被拆解成能轻松解决的小问题时,运行终止条件中的逻辑递归关系: 定义如何将大问题拆解为小问题 例子:小名跑步。例如:小名跑4公里,能够分为(跑1km+再跑3km)-> (跑1km+再跑2km)-> (跑1km+再跑1km)-> (跑齐全程)实现: public void running(int distance) {if (distance == 0) { // 终止条件System.out.println("小名跑完了全程!");return;} else {System.out.println("小名跑了1km");distance = distance - 1;System.out.println("还剩" + distance + "km");running(distance); // 递归调用}} @Testpublic void test1() {int distance = 4;System.out.println("跑步总程:" + distance + "km");running(distance);}输入: 跑步总程:4km小名跑了1km还剩3km小名跑了1km还剩2km小名跑了1km还剩1km小名跑了1km还剩0km小名跑完了全程! 正如: 二叉搜寻树中的搜寻树对象: public class TreeNode {int val;TreeNode left;TreeNode right; TreeNode() {} TreeNode(int val) {this.val = val;} TreeNode(int val, TreeNode left, TreeNode right) {this.val = val;this.left = left;this.right = right;} ...