算法入门
文章平均质量分 61
MDeleter
这个作者很懒,什么都没留下…
展开
-
基础算法——深度优先经典——岛屿问题
在此之前,我曾见过许多的学生提及算法唯恐避之不及,几乎所有人都知道算法只不过是思考问题的方法,但很遗憾,大部分人并未体会到算法的乐趣所在,而是被所谓的一些优秀者口中的“神圣”的算法策略给唬住,而不敢向前。原创 2022-01-17 23:43:17 · 3247 阅读 · 0 评论 -
(Java)旋转打印矩阵
说是旋转打印矩阵其实是一圈一圈打印,最终结果表现为旋转的样子。源代码:public class spiralOrderPrint { public void printEdge(int[][] m,int tR,int tC, int dR,int dC){ if(tR == dR){ for(int i = tC; i<=dC;i++){ System.out.print(m[tR][i] + " ").原创 2021-12-21 04:46:25 · 341 阅读 · 0 评论 -
动态规划——常见题型及算法思路解析
动态规划理解起来的确困难,因为要给数学规律一个合理的解释是非常耗费时间的,即使已知在数学规律的背后一定会有原因,但将题做出来跟理解题目不是一个概念,无论你准备朝哪个方向努力。首要的事就是先将题拿下。原创 2021-12-04 07:19:09 · 1961 阅读 · 0 评论 -
经验之谈——动态规划
动态规划的解题核心内容是填动态规划表后对解进行优化(也就是打表找规律),动态规划的真正难点在于试法,教课书上的那些状态转移方程是别人在打表之后,在表中找出数学规律之后,才写出来的。也就是说,要已知规律和解,才能写出状态转移方程。原创 2021-12-04 07:01:01 · 136 阅读 · 0 评论 -
动态规划法——常见题型及算法思路
有关动态规划类问题本书不够入门,内容较严谨,不太适合小白,在此我将写下一些动态规划的基础思想(基础不代表简单,只是需要的前备知识少)。使用动态规划法求解整数拆分问题下面是逻辑推理的过程(动态规划方程的理由),只是为了方便理解规划方程的原因才硬写出来的。即使不知道原因,也能写出动态规划方程,不用理由。有基础的可以跳到下方红线处。该题目中n代表数值,k代表最多能被拆成多少组n=4,k=4:4—1+1+1+1 2+1+1 3+...原创 2021-12-04 06:54:40 · 573 阅读 · 0 评论 -
减治法——常见题型及算法思路
折半查找的递归算法折半查找也叫二分查找,对有序序列进行搜索,应用于快速排序。折半查找将数组分为≤mid与>mid左右两个区域,比较当前数组中间值mid与目标值num的大小,若num<=mid则在左区域中递归刚才这一过程。若num>mid则在右区域递归该过程。由于数组被不断划分为更小部分,总能将数组全部查找完。二叉查找树的递归算法二叉查找树又叫二叉搜索树,是完全平衡二叉树和AVL树的母版。二叉搜索树的结构跟普通二叉树不同,它确保树左子节点原创 2021-12-04 06:44:13 · 849 阅读 · 0 评论 -
分治法——经典题型算法思路
求一个整数序列中的最大和最小元素算法思想:本题为无序序列查找最大/最小元素位置问题。要求采用分治法求解,则与称假币问题的思路类似。思路:(以查找最大元素为例)对arr[low…high]求最大值max0并分为arr[low…mid0]、arr[mid0+1…high]左右两段再对分别对arr[low…mid0]和arr[mid0+1…high]求最大值max1L,max1R每次将一段大区域划分为小区域并在两个小区域中找到最大值与原来区域最大值相同的区域,接着划分,原创 2021-12-04 06:25:31 · 932 阅读 · 0 评论 -
(Java)基础数据结构与算法(一)——递归
下面是一些自己学习算法过程中所整理记录的一些常见知识点,仅供博主自己复习用原创 2021-11-25 15:13:14 · 652 阅读 · 0 评论