leetcode
文章平均质量分 70
Treasureashes
总有一条非走不可的弯路。
展开
-
【Leetcode】动态规划题思路总结(Medium)
根据难度分为了三篇,Medium中回文串相关的会单独介绍一篇。目录Medium62. 不同路径64. 最小路径和198. 打家劫舍213.打家劫舍 II740. 删除并获得点数1143. 最长公共子序列最长公共子串300. 最长递增子序列375. 摆动序列Medium62. 不同路径爬楼梯的二维版本,不同的是路只能一格一格走状态:dp[i][j]到达当前格子[i][j]的可能的路径数递推公式:dp[i][j] = dp[i-1][j] ...原创 2021-08-16 00:40:04 · 223 阅读 · 0 评论 -
【leetcode】动态规划题思路总结(Easy)
全部写下来发现太长了,就根据难度分为三篇了。Easy70. 爬楼梯 / 509. 斐波那契数这道题可以算是最经典的动态规划题了状态:dp[i] 到达第i台阶可能的跳法递推公式:dp[i] = dp[i-1] + dp[i-2]初始状态:dp[0] = 0,dp[1] = 1,dp[2] = 2(这个边界条件也可以设为dp[0] = 1,dp[1] = 1)class Solution(object): def climbStairs(self, n): .原创 2021-08-15 23:15:16 · 133 阅读 · 0 评论 -
【leetcode】53. 最大子序和的贪心解法
题目:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组[4,-1,2,1] 的和最大,为6 。除了常用的动态规划分治方法以外,还有一种基于贪心的算法,看起来很简单,细细想来实则很精妙:class Solution(object): def maxSubArray(self, nums): """ :t...原创 2021-07-26 00:12:58 · 207 阅读 · 0 评论 -
【leetcode】54. 螺旋矩阵
思路观察螺旋规律从 matrix[0][-1] 为起点,开始向右出发,那么第一次会走 n 步,n = matrix[0].size()向下转,会走 m - 1 步,m = matrix.size()向左转,n - 1 步向上转,m - 2 步因此,控制好步数,和步数的变化,将所有元素依次填入数组,即可得到答案使用方向数组 vector<vector<int>> dd ,参考图解:【螺旋矩阵 II】【螺旋矩阵 II】螺旋行走,图解方向数组设计方向数组的四个方向,与螺原创 2021-06-16 22:53:09 · 322 阅读 · 0 评论