递归的练习

news/2025/1/16 16:58:51/

思路

1.确定能否使用递归求解

2.推到出递推关系,即父问题与子问题的关系,以及递归的结束条件

深入到最里层的叫做递

从最里层出来的叫做归

在递的过程中,外层函数内的局部变量(以及方法参数)并未消失,归的时候还可以用到

阶乘

    public static void main(String[] args) {int i = f(5);System.out.println(i);}public static int f(int n) {if (n == 1) {return 1;}return n * f(n - 1);}
}

打印字符串

public static void p(int n,String str){if (n==str.length()){return;}p(n+1,str);System.out.println(str.charAt(n));
}

二分查找

public static int search(int[] arr, int target) {return f(arr, target, 0, arr.length - 1);
}private static int f(int[] arr, int target, int i, int j) {if (i > j) {return -1;}int m = (i + j) / 2;if (target < arr[m]) {return f(arr, target, i, m - 1);} else if (target > arr[m]) {return f(arr, target, m + 1, j);} else {return m;}
}

冒泡排序

private static void bubble(int[] a, int j) {if (j == 0) {return;}int x=0;for (int i = 0; i < j; i++) {if (a[i] > a[i + 1]) {int t = a[i];a[i] = a[i + 1];a[i + 1] = t;x=i;}}bubble(a,x);
}


http://www.ppmy.cn/news/94351.html

相关文章

AcWing算法提高课-1.3.11二维费用的背包问题

宣传一下算法提高课整理 <— CSDN个人主页&#xff1a;更好的阅读体验 <— 本题链接&#xff08;AcWing&#xff09; 点这里 题目描述 有 N N N 件物品和一个容量是 V V V 的背包&#xff0c;背包能承受的最大重量是 M M M。 每件物品只能用一次。体积是 v i v_…

优雅提交-Git-Commit-Message

title: 优雅提交 Git Commit Message date: 2023-05-15 09:54:27 description: tags: Message 规范 那么如何能优雅而又不失体面的提交你的代码呢&#xff1f;其实我们的 git commit message 是应该具备一些规范的。目前规范用的比较多的是 Angular 团队的规范 message 样例…

COLMAP中将旋转矩阵转为四元数的实现

instant-ngp中执行scripts/colmap2nerf.py时&#xff0c;在colmap_text目录下会生成cameras.txt、images.txt、points3D.txt三个文件: 1.cameras.txt&#xff1a; (1).该文件包含数据集中所有重构相机(all reconstructed cameras)的内在参数(intrinsic parameters)&#xff0c;…

自动化测试1

目录 1.什么是自动化测试 1.1自动化分类 1.1单元测试 1.2接口测试 1.3UI自动化测试 2.selenium 1.什么是selenium 2.selenium的特点 3.工作原理 3.seleniumJava 1.搭建 1.查看Chrome版本 2.下载Chrome浏览器驱动 3.配置,放到该目录下 2.验证是否搭建成功 1.什么是…

PCB 布线技术~PCB 基础

PCB量测的单位 • PCB设计起源于美国&#xff0c;所以其常用单位是英制&#xff0c; 而非公制 – 版子的大小通常使用英尺 – 介质厚度&导体的长宽通常使用英尺及英寸 • 1 mil 0.001 inches • 1 mil .0254 mm – 导体的厚度常使用盎司(oz) • 一平方英尺金属的重量 •…

【SA8295P 源码分析】05 - SA8295P QNX Host 上电开机过程 进一步梳理(结合代码)

【SA8295P 源码分析】05 - SA8295P QNX Host 上电开机过程 进一步梳理(结合代码) 一、APPS PBL(Application Primary Boot Loader):固化在CPU ROM中1.1 APPS PBL 加载 XBL Loader1.2 XBL Loader加载验证并运行SMSS进行自检,自检完成后触发Warm Reset1.3 WarmRest后,APPS…

Yolov5/Yolov7涨点技巧:MobileViT移动端轻量通用视觉transformer,MobileViTAttention助力小目标检测,涨点显著

1. MobileViT介绍 论文:https://arxiv.org/abs/2110.02178 现有博客都是将MobileViT作为backbone引入Yolov5,因此存在的问题点是训练显存要求巨大,本文引入自注意力的Vision Transformer(ViTs):MobileViTAttention MobileViT是一种基于Transformers的轻量级模型,它可以用于…

TIOBE 5 月榜单揭晓:哪些编程语言正在上升?

每年的 TIOBE 编程语言排行榜都是开发者们关注的焦点。在这个数字化时代&#xff0c;编程语言的重要性变得越来越不可忽视。作为一名开发者&#xff0c;了解什么样的编程语言最受欢迎&#xff0c;哪些语言正在兴起或正在走向衰落&#xff0c;是非常重要的。在本文中&#xff0c…