数据结构
文章平均质量分 77
参宿四
这个作者很懒,什么都没留下…
展开
-
leetcode刷题日志—1.27、1.28
题目1:72. 编辑距离 首先我们可以通过递归解决这道题目,根据最长子序列那道题,可以知道比对两个字符串,可以从最后往前面逐个遍历,如果这两个字符相同,我们就进行skip,继续往前;如果字符不同,我们有三种操作:删除、替换、插入;我们并不知道哪种操作可以为我们节省步数,所以进行分别递归,取三者的最小值;具体分析见下链接:https://labuladong.gitbook.io/algo/dong-tai-gui-hua-xi-lie/zi-xu-lie-lei-xing-wen-ti/bian-j原创 2021-01-29 09:42:05 · 180 阅读 · 0 评论 -
数据结构学习日志——1.24、1.25(动态规划)
回顾一下分治思想,归并排序就是采用的这种思路:https://leetcode-cn.com/problems/maximum-subarray/solution/zui-da-zi-xu-he-by-leetcode-solution/这段话很重要,其实浏览器的搜索方式就是依赖于树结构,快速找到关键词所在的位置和信息。题目1:零钱兑换II这道题的难点在于存在重复的情况,如1 2 1 1和1 1 2 1是属于同一种零钱兑换方式,因此不能简单的将dp[i]写成 dp[i]+=dp[i-coin]原创 2021-01-26 10:09:57 · 124 阅读 · 0 评论 -
数据结构学习日志—1.21、1.22、1.23(动态规划)
动态规划具体来说,动态规划的一般流程就是三步:暴力的递归解法 -> 带备忘录的递归解法 -> 迭代的动态规划解法。就思考流程来说,就分为一下几步:找到状态和选择 -> 明确 dp 数组/函数的定义 -> 寻找状态之间的关系。参考链接1:https://leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/thinkings/dynamic-programming动态规划的根本目的是避免重复计算参考链接2:原创 2021-01-23 22:25:54 · 129 阅读 · 0 评论 -
数据结构学习日志—1.16
题目1:除法求值这道题的解法有多种,并查法、广度优先搜索、深度优先搜索等采用广度优先搜索BFS进行解决:代码:vector<double> calcEquation(vector<vector<string>>& equations, vector<double>& values, vector<vector<string>>& queries) { //第一步,将a、b等顶点映射到哈原创 2021-01-17 09:41:08 · 123 阅读 · 0 评论