![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
雨落风暖晴
这个作者很懒,什么都没留下…
展开
-
二叉树前序中序后序
前序遍历:根结点 —> 左子树 —> 右子树(先遍历根节点,然后左右) 中序遍历:左子树—> 根结点 —> 右子树(在中间遍历根节点) 后序遍历:左子树 —> 右子树 —> 根结点(最后遍历根节点 前序序列{1,2,4,7,3,5,6,8} 中序序列{4,7,2,1,5,3,8,6} 前序序列的第一个结点确定根结点,为 1 找1在中序的位置,左子树前序序列为:{2,4,7},切割后的左子树中序序列为:{4,7,2};切割后的右子树前序序列为:{3,5,6,8},切割后的右原创 2020-06-01 18:57:56 · 187 阅读 · 0 评论 -
斐波那契数列
F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*) 指这样一个数列:1、1、2、3、5、8、13、21、34、…… 和:2^(n-1) 爬楼梯70 有 N 阶楼梯,每次可以上一阶或者两阶,求有多少种上楼梯的方法。 定义一个数组 dp 存储上楼梯的方法数(为了方便讨论,数组下标从 1 开始),dp[i] 表示走到第 i 个楼梯的方法数目。 第 i 个楼梯可以从第 i-1 和 i-2 个楼梯再走一步到达,走到第 i 个楼梯的方法数为走到第 i-1 和第 i-2原创 2020-06-16 11:28:40 · 115 阅读 · 0 评论 -
关于矩阵的算法
矩阵的最小路径和64 [[1,3,1], [1,5,1], [4,2,1]] Given the above grid map, return 7. Because the path 1→3→1→1→1 minimizes the sum. class Solution { public int minPathSum(int[][] grid) { int m=grid.length,n=grid[0].length; for(int i=1;i<n;i++){原创 2020-06-16 16:13:34 · 766 阅读 · 0 评论 -
递归图的理解
递归过程 找终止条件 找返回值 明确本级递归 递归的过程类似于出入栈原创 2020-06-21 23:08:07 · 374 阅读 · 0 评论 -
排序算法相关
选择排序 从首元素开始,选择最小/最大的元素放入起始位置,再从剩余元素找到最小/最大放在已排序列的末尾,以此类推。 public static int[] selectionSort(int[] array) { if (array.length == 0) return array; for (int i = 0; i < array.length; i++) { int m = i; for (int j = i; j < a.原创 2020-08-31 17:01:11 · 120 阅读 · 0 评论 -
正则的算法应用
'.‘表示任意一个字符,’*'表示前面的字符可以出现任意次或0次 class Solution { public boolean isMatch(String A, String B) { // 如果字符串长度为0,需要检测下正则串 if (A.length() == 0) { // 如果正则串长度为奇数,必定不匹配,比如 "."、"ab*",必须是 a*b*这种形式,*在奇数位上 if (B.length() % 2原创 2020-07-07 11:14:10 · 124 阅读 · 0 评论