随笔分类 - 算法和数据结构
摘要:public int gcd (int a, int b) { int mode = a % b; if(mode == 0) { return b; } return gcd(b, mode); }
阅读全文
摘要:描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 数据范围:1 \leq n \leq 401≤n≤40要求:时间复杂度:O(n)O(n) ,空间复杂度: O(1)O(1)示例1输入:2返回值:2说明:青蛙要跳上两级台阶有
阅读全文
摘要:有时候根据不同的要求,算法的目的可能是计算特定值,也可能是返回某个要求的全部可能的值。 递归就是完全不去控制执行过程的一种算法,如果返回全部可能的值,就极大可能重复执行之前的已有操作。 动态规划则是利用一种数据结构,通常可能是列表,保存中间运行的值,减少已经执行的运算,或者根据列表内容剔除将要执行的
阅读全文
摘要:通常关注时间复杂度, 对于常数阶和循环次数不变的时空复杂度,就不过多介绍了。 递归的时间复杂度: 对于只调用一次自身且递归次数程常数阶减少的递归,比如: void fun(int n) { if(n == 0) { return; } n--; return fun(n); } 它的时间复杂度是O(
阅读全文
摘要:斐波那契数列 斐波那契数列又称 黄金分割 数列,因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“ 兔子数列 ”; * 指的是这样一个数列:1、1、2、3、5、8、13、21、34、……* 其规律是从第3个数开始,每个数都等于它前两个数的和。 递
阅读全文
摘要:package linked;/** * @date 2023/4/26 22:51 * @description 单链表 */public class SingleLinkedList { private int size = 0; private Node head; private Node
阅读全文