- 博客(3)
- 资源 (1)
- 收藏
- 关注
原创 算法学习——快慢指针的作用及其应用场景
快慢指针的作用针对链表的一些用法快慢指针寻找链表中位数初始时,快指针fast和慢指针slow均指向链表的左端点。我们将快指针fast向右移动两次的同时,将慢指针slow向右移动一次,直到快指针到达边界(即快指针到达右端点或快指针的下一个节点是右端点)。此时,慢指针slow对应的元素就是中位数。// 知道右边界func getMid(left, right *Node) *Node { if left == nil { return nil } fast :
2020-10-17 17:32:44 640
原创 经典dp--字符串系列之Go写法
字符串系列–经典dp系列GO写法在这里我目前碰到了两个比较像的字符串dp处理的问题,分别是编辑距离和最长公共子序列,这两个问题结构很相似,都是借助二维数组来保存状态,根据这种状态来转移更新。下面来看看这两个题怎么解吧。PS:画个矩阵出来比一比更加形象生动!!!Edit Distance该题编辑距离,这道题连接和题目描述见原链接(标题)首先,我们定义一个dp数组,大小为m = len(word1), n = len(word2)。dp[i][j]的含义表示子串word1[0:i]和word2[0:j
2020-10-08 22:16:51 598
原创 经典dp--不同路径系列之Go写法
经典dp–不同路径系列之GO写法uniquePaths这是一个dp问题,最重要的是需要找到一个状态转移方程。从题目可见,机器人只能向右或者向左走,因此对于到达某一个节点,其主要有两条路径可以到达,也就是说从上面的节点以及左边的节点过来。而假定我们有一个dp二维数组,大小为m x n, 然后存储的值是到达这个节点的路径数目,根据上面所述,我们有状态转移方程:dp[i][j] = dp[i-1][j] + dp[i][j-1] 特别地,这里可以使用优化空间版本的dp数组,也就是一个大小为n的一位数
2020-10-04 10:33:57 593
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人