![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
蛇皮皮蛋
求大佬笔下留情……
展开
-
求两个字符串的最长公共子串(动态规划)
最长公共子串问题是寻找两个或多个已知字符串最长的子串。此问题与最长公共子序列问题的区别在于子序列不必是连续的,而子串却必须是。public class A { private static int getCommonStrLength(String str1, String str2) { //创建一个二维数组大小,行列为str1.length()+1,str2.length() //这一步主要是为了生成网格数组 int len1 = str原创 2021-03-05 10:55:40 · 3564 阅读 · 1 评论 -
算法——归并排序
归并排序算法是基于归并(Merge)操作的一种有效排序算法,是采用分治法(Divide and Conquer)的典型应用。基本思想:归并排序的原理是先将原始数组分解为多个子序列,然后对每个子序列进行排序,最后将排好序的子序列合并起来。/** * @Classname A * @Description TODO * @Date 2020/12/30 11:15 * @Created zzf */public class A { public static void main原创 2020-12-30 14:40:53 · 1080 阅读 · 0 评论 -
算法——插入排序
插入排序的基本思路是将一个数据插入已经排好序的序列中,从而得到一个新的有序数据,该算法适用于少量数据的排序,是稳定的排序方法。代码: for (int i = 1; i < a.length; i++) { //插入的数 int val = a[i]; //被插入的位置和前面一个数比较 int index = i - 1; //只要index值>=0原创 2020-12-29 16:45:27 · 1007 阅读 · 0 评论 -
深入浅出的讲解傅里叶变换(真正的通俗易懂)
一、什么是频域从我们出生,我们看到的世界都以时间贯穿,股票的走势、人的身高、汽车的轨迹都会随着时间发生改变。这种以时间作为参照来观察动态世界的方法我们称其为时域分析。而我们也想当然的认为,世间万物都在随着时间不停的改变,并且永远不会静止下来。但如果我告诉你,用另一种方法来观察世界的话,你会发现世界是永恒不变的,你会不会觉得我疯了?我没有疯,这个静止的世界就叫做频域。先举一个公式上并非很恰当...转载 2019-10-22 16:04:42 · 3723 阅读 · 4 评论 -
算法——快排算法
快速排序是一种分治思想,里面通过将定位一个基准数然后划分两个数组,然后再各自对这两个数组进行相同的算法,一直到一个空数组(开头和结尾都是同一个下标)原理首先通过定位一个基准数,然后通过移动指针将其划分两个数组,如果是正序那么就是比基准数大的放右边,比它小的放左边,如果是倒叙,那么比它大的放左边,比它小的放右边。这样就将一个数组分成了两个子数组,然后再按照同样的方法把子数组再分成更...原创 2019-08-03 10:13:00 · 4495 阅读 · 0 评论 -
算法——广搜(BFS)/深搜(DFS)
在图的基本算法中,最初接触的就是图的遍历算法,根据访问节点的顺序,可分为广度优先搜索(BFS)和深度优先搜索(DFS)。广度优先搜索广度优先搜索算法主要解决两个问题:从节点A出发有到节点B的路径吗? 从节点A出发到节点B的最短路径是哪条?实现方式: 它的实现方式可以用队列的数据结构去理解(先进先出),每次取出一个节点都将这个节点相邻的节点加入队列尾部,直到找到需...原创 2019-08-09 12:41:46 · 5328 阅读 · 0 评论 -
算法——迪克斯特拉算法
迪克斯特拉算法主要分四个步骤:找到“最便宜”的节点(可在最短时间内到达的节点)。 更新该节点的邻居节点的开销。 重复这个过程,直到对图中每个节点都做了。 计算最终路径。这个算法的核心理念是:找到图中最便宜的节点,并确保没有到该节点更便宜的路径。 (所以需要注意的是如果你的图包含负权边,就不能用这个算法,因为这会导致已经处理过的节点更新。)假设我现在有上面的一张图,计算A->...原创 2019-08-09 19:40:19 · 15412 阅读 · 6 评论 -
算法——动态规划(DP)
动态规划问题,大致可以通过以下四部分进行解决:划分阶段:按照问题的时间或空间特征,把问题分为若干个子阶段。(划分后的子阶段一定要是有序的或者是可排序的,否则问题就无法求解。) 状态表示:将问题发展到各个阶段时所处于的各种客观情况用不同的状态表示出来。(要满足无后效性。) 状态转移:状态转移就是根据上一阶段的状态和决策来导出本阶段的状态。 确定边界:状态转移方程是一个递推式,需要一个递推的...原创 2019-08-12 16:08:28 · 3763 阅读 · 0 评论 -
算法——小球下落(二叉树)
问题描述 : 有一棵二叉树,最大深度为D,且所有叶子的深度都相同。所有结点从上到下从左到右 编号为1, 2, 3,…, 2D-1。在结点1处放一个小球,它会往下落。每个内结点上都有一个开关, 初始全部关闭,当每次有小球落到一个开关上时,状态都会改变。当小球到达一个内结点时,如果该结点上的开关关闭,则往左走,否则往右走,直到走到叶子结点。如图所示:样式输入:4 23 4...原创 2019-08-17 15:38:16 · 4625 阅读 · 0 评论