![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法学习
文章平均质量分 86
火星人不会写代码
一个恨不得把注释写成作文的程序小白汪
展开
-
【刷体日记】双指针问题
leecode 680 回文串给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。示例 1:输入: “aba”输出: True示例 2:输入: “abca”输出: True解释: 你可以删除c字符。注意:字符串只包含从 a-z 的小写字母。字符串的最大长度是50000。思路判断回文 --> 双指针i,ji ,ji,j以"abdda"为例,当iii指向’b’,jjj指向’d’,此时不对,但是有一次删除的机会,那么子串范围为(i+1,ji+1, ji原创 2021-06-09 16:36:49 · 187 阅读 · 2 评论 -
【刷题日记】贪心算法
【刷题日记】贪心算法leetcode 455 分发饼干假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。思路每个孩子只有一块饼干。饥饿度最小的孩子最容易满足,最节省饼干。为了尽原创 2021-04-29 17:13:01 · 205 阅读 · 0 评论 -
【算法学习】Dynamic Programming动态规划--例题的python实现
关于DP的讲解原文参见:基于java描述的DP讲解什么时候用动态规划使用条件问题的最优解中包含子问题的最优解,可以使用子问题的最优解构造出原问题的最优解:状态转移方程重要手段使用备忘录记录求结果的子问题的解,以减少重复计算初学者的流程暴力递归带备忘录的递归非递归的动态规划其中递归解法是自顶向下的(从当前问题规模逐渐减小)而动态规划是自底向上的(从最小子问题一直计算到...原创 2019-06-21 16:08:23 · 367 阅读 · 0 评论 -
【算法学习】最熟悉的陌生人——堆与堆排序
排序方法八九十种,唯有堆排序那么骨骼清奇,经常让人记不住,记住了又写不明白。用堆来做排序。堆又是一个常用数组存储的树形结构的东西。搞树的时候最喜欢递归。搞数组的时候又最喜欢查找和遍历。遇上堆这么个玩意儿。忽然见就又有了一些骚操作。堆排序要从堆开始。堆要从完全二叉树开始。二叉树的亲戚们:普通二叉树: 每个结点最多有两个孩子完美二叉树: 除叶子结点外每个结点都有两个孩子(有2n−12...原创 2019-06-24 21:41:18 · 228 阅读 · 0 评论 -
【算法学习】数据结构——图 (一)基础笔记
一. 概念不说了NNN:结点EEE:边2. 程序中的表示1. 邻接矩阵:G[N][N] ——N个定点从0-N-1编号G[i][j]={权if <vi,vj>是G的边0否则G[i][j]= \begin{cases}权 & \text{if <$v_i,v_j$>是$G$的边}\\0 &a...原创 2019-09-07 16:04:46 · 132 阅读 · 0 评论 -
【算法学习】数据结构——图(二):最小生成树MST与拓扑排序
一. 最小生成树最小生成树存在 等价于 图是连通的是一棵树无回路N个顶点有N-1条边生成树包含全部顶点N-1条边都在图里再加一条边就形成回路边的权重和最小算法:贪心算法贪:每一步都是最好的好:权重最小的边约束:只能用图里的边正好用掉N-1条边不能有回路1. Prim 算法从根开始,每次选当前树之外权重最小的边让树长大,直到把所有结点...原创 2019-09-07 17:44:21 · 347 阅读 · 0 评论