
算法
在acwing上学习算法的理解文章
见闻色霸气~
这个作者很懒,什么都没留下…
展开
-
动态规划转移方程看不懂?以集合的角度分析问题 最长上升子序列I讲解
前言动态规划这类问题一直是大家学习算法,平时练习中遇到的最难的问题之一。其中有一类问题是线性的,也叫他线性DP。今天我们一起来分析一下最长上升子序列I。题目信息给定一个长度为 N 的数列,求数值严格单调递增的子序列的长度最长是多少。 注意:这里的子序列要求是严格单调递增的。例如 1,2,3,4。不能是1,1,2,3,4。 输入格式``第一行包含整数 N。第二行包含 N 个整数,表示完整序列。``输出格式输出一个整数,表示最大长度。数据范围本题数据范围:1≤N≤100000,原创 2022-03-21 17:46:13 · 330 阅读 · 14 评论 -
经典BFS问题之走迷宫
题目信息给定一个 n×m 的二维整数数组,用来表示一个迷宫,数组中只包含 0 或 1,其中 0 表示可以走的路,1 表示不可通过的墙壁。最初,有一个人位于左上角 (1,1) 处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。请问,该人从左上角移动至右下角 (n,m) 处,至少需要移动多少次。数据保证 (1,1) 处和 (n,m) 处的数字为 0,且一定至少存在一条通路。输入格式第一行包含两个整数 n 和 m。输出格式接下来 n 行,每行包含 m 个整数(0 或 1),表示完整原创 2022-02-17 14:58:13 · 407 阅读 · 1 评论 -
KMP算法各种写法中,最简短易懂的一种
直接上代码import java.io.*;public class Main { static int N=100010; static int M=1000010; static int n=0; static int m=0; static char []p=new char[N]; static char []s=new char[M]; static int ne[]=new int[N]; public static原创 2022-01-26 17:18:47 · 348 阅读 · 0 评论 -
单调队列的应用:剑指 Offer 59 - II. 队列的最大值 双端队列(图文并茂)一步一步详细指导
目录题目信息样例示例 1:示例 2:限制条件思路:Step 1:Step 2:Step 3:Step 4:总结:代码实现题目信息请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。若队列为空,pop_front 和 max_value 需要返回 -1样例示例 1:输入: ["MaxQueue","push_back","push_back","max_value","po原创 2022-01-21 13:47:57 · 232 阅读 · 7 评论