![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构
文章平均质量分 57
数据结构
YJ语
这个作者很懒,什么都没留下…
展开
-
这道题 我debug了3小时
博主有个小小的强迫症,那就是——喜欢总结东西!所以最近在总结Leetcode套路(动态规划、回溯)的时候,我debug了3个小时!现在让我们看看这道题(我细节没想清楚,所以错了)72. 编辑距离有兴趣的同学可以自己去尝试下:这里我写下我的3种解决方案(表示记忆深刻!!!)对于常见的算法而言,本质上都是穷举(或者通过剪枝/状态转移方程进行优化)以下写下递归解法、加了备忘录的递归解法、以及dp。前两种是自上而下的,最后一种是自下而上的。通过3种解法基本上可以构建一个这类题的一个思路体系!递归原创 2021-05-14 23:59:12 · 106 阅读 · 0 评论 -
鼠目寸光的“贪心算法“
假设你是个土豪,你有1,5,10,20,50,100的钞票,你要凑出666买瓶水喝,依据生活经验,我们一般采取这样的策略:能用100就用100的,否则就用50的,依此类推,在这种策略下,666=100*6 + 50 1 + 10 1 + 51 + 11, 一共用了10张钞票。这种策略就称为贪心策略 :贪心策略是在当前情况下做出最好的选择,根据需要凑出的金额来进行贪心。但是,如果我们换一组钞票面值,比如 1, 5, 11,我们要凑出15的时候, 贪心策略就会出错:15 = 11 * 1 + 1 * 4原创 2021-05-09 11:37:37 · 95 阅读 · 0 评论 -
递归反转链表:如何拆解复杂问题
文章目录1 单链表2 递归实现反转单链表3 反转链表前N个结点4 反转链表的一部分总结1 单链表对于单链表讲,单链表中的结点不一定存储在相邻位置,一个结点储存两个信息,一是该节点的值,二是指向下一个结点的位置信息。// 单链表节点的结构public class ListNode { int val; ListNode next; ListNode(int x) { val = x; }}本文的主要目的是以单链表出发,递归实现反转单链表——>反转链表前N个结..原创 2021-01-02 17:13:55 · 140 阅读 · 0 评论 -
最长公共子序列
1 最长公共子序列计算最长公共子序列(Longest Common Subsequence,简称 LCS)是一道经典的动态规划题目,大家应该都见过:给你输入两个字符串s1和s2,请你找出他们俩的最长公共子序列,返回这个子序列的长度。力扣第 1143 题就是这道题,函数签名如下: int longestCommonSubsequence(String s1, String s2);1.1 自上而下(递归)实现// 备忘录,消除重叠子问题int[][] memo;/* 主函数 */int原创 2021-01-02 10:40:07 · 168 阅读 · 0 评论 -
二分查找
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录1 二分排序的思路和注意要点2 二分排序的java实现总结1 二分排序的思路和注意要点二分查找的思路分析首先确定该数组的中间的下标mid = (left + right) / 2然后让需要查找的数 findVal 和 arr[mid] 比较2.1 findVal > arr[mid] , 说明你要查找的数在mid 的右边, 因此需要递归的向右查找2.2 findVal < arr[mid], 说明你原创 2020-12-26 12:27:30 · 127 阅读 · 1 评论 -
小说——快速排序与合并排序
文章目录1 快速排序图解2 快速排序java实现3 合并排序图解4 合并排序java实现总结1 快速排序图解图解详细过程:图解快速排序思路合代码思想:总的来说快速排序分为左右划分阶段和排序阶段:左右划分阶段:代码中的两个注意点如上图第一部分排序阶段:代码中的一个注意点如上图第二部分2 快速排序java实现import java.text.SimpleDateFormat;import java.util.Arrays;public class QuickSort {原创 2020-12-26 11:33:13 · 230 阅读 · 0 评论 -
主定理:递推方程求解时间复杂度
前言设序列a0a_0a0, a1a_1a1, …, ana_nan, …, 简记为{ana_nan}, 一个把ana_nan与某些个aia_iai(i<n)联系起来的等式叫做关于序列 {ana_nan} 的递推方程求解方法:迭代法直接迭代:插入排序最坏情况下时间分析换元迭代:二分归并排序最坏情况下时间分析差消迭代:快速排序平均情况下的时间分析迭代模型:递归树主定理:递归算法的分析主定理主定理定义:概括为一句话:就是谁大取谁,相等就乘。主定理举例:原创 2020-12-23 21:05:23 · 3437 阅读 · 0 评论 -
算法复杂度:算法时间复杂度和空间复杂度表示法
文章目录时间复杂度1.时间频度2.计算方法3.分类空间复杂度算法的时间复杂度(计算实例)算法的时间复杂度O(1)O(n^2)O(n)O(log2n )O(n^3)算法复杂度的渐近表示法一 大O记号二 Ω记号三 Θ记号四 小o记号五 例子常见排序算法时空复杂度总结算法复杂度分为时间复杂度和空间复杂度。时间复杂度用于度量算法执行的时间长短;而空间复杂度则是用于度量算法所需存储空间的大小时间复杂度1.时间频度一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我转载 2020-12-23 15:38:19 · 2115 阅读 · 0 评论