随笔分类 -  leetcode刷题笔记

摘要:leetcode 206 思路 **迭代:**遍历链表,将当前节点的next指向前一个节点,中间过程需要保存前一个节点和下一个节点(反转后最后一个节点指向空) 时间复杂度O(n),空间复杂度O(1) **递归:**将反转整个链表分解为两个子问题(反转head和反转head以外的其它节点),往下分解为 阅读全文
posted @ 2021-07-17 22:03 简约的信仰 阅读(158) 评论(0) 推荐(0)
摘要:最近项目中需要求两个字符串(序列)的公共部分,所以查了一下相关的算法,了解到有最长公共子串、最小编辑距离等可用于计算两个字符串的相似程度,将leetcode上对应的题目做了之后,暂时按照自己的理解总结一下。 1143. 最长公共子序列(LCS) 思路: 这是经典的**LCS( Longest Com 阅读全文
posted @ 2021-05-03 20:08 简约的信仰 阅读(676) 评论(0) 推荐(0)
摘要:总结: 前四道都可以用二维DP,定义状态第一维代表当前天数,第二维代表当天持有股票和不持有股票两种状态,dp[ i ] [ 0 ] 代表第 i + 1 天(下标是从0开始) 不持有股票的状态,dp[ i ] [ 1 ] 表示第 i + 1 天持有股票的状态时收益最大。 状态转移,当天不持有股票可以从 阅读全文
posted @ 2021-04-30 19:40 简约的信仰 阅读(98) 评论(0) 推荐(0)
摘要:单调栈的性质 单调栈里的元素具有单调性(单调递增\单调递减) 元素在入栈之前,通过判断会先把栈顶元素破坏单调性的元素都删除 使用单调栈可以找到元素向左遍历第一个比它小的元素,也可以找到元素向右遍历第一个比它大的元素(能拓展的最大宽度确定) 它的时间复杂度是线性的,所有元素只会入栈一次,且出栈了就不会 阅读全文
posted @ 2021-04-24 23:55 简约的信仰 阅读(173) 评论(0) 推荐(0)
摘要:题目描述 方法一——枚举 枚举所有高度(矩形) 当前矩形能围成的最大面积,取决于向左右扩展时,高度小于当前高度的矩形,记录下左右当前左右坐标,((right - left) -1)* heights[i] 就是当前矩形能围成的最大面积 暴力枚举:枚举所有宽度,时间复杂度为O(n^2) int lar 阅读全文
posted @ 2021-04-24 14:26 简约的信仰 阅读(303) 评论(0) 推荐(0)