算法刷题
文章平均质量分 97
风起、风落
大三在读 但行好事,莫问前程
展开
-
【LeetCode】动态规划 刷题训练(六)
随后,在第 7 天(股票价格 = 1)的时候买入,在第 8 天 (股票价格 = 4)的时候卖出,这笔交易所能获得利润 = 4-1 = 3。g[0][0]:表示第0天结束之后,处于卖出状态 (第0天结束之后,没有股票在手里,无法卖出,相当于啥也没干,利润为0)在第一步中,将g[i][j]赋值为 g[i-1][j],所以在if循环中直接将g[i-1][j]替换成g[i][j]在第一步中,将g[i][j]赋值为 g[i-1][j],所以在if循环中直接将g[i-1][j]替换成g[i][j]原创 2023-06-29 19:40:04 · 1446 阅读 · 94 评论 -
【LeetCode】动态规划 刷题训练(九)
相反,[1, 4, 7, 2, 5] 和 [1, 7, 4, 5, 5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。例如, [1, 7, 4, 9, 2, 5] 是一个 摆动序列 ,因为差值 (6, -3, 5, -7, 3) 是正负交替出现的。就需要先求 区间[0,i-1]内的最长的递增子序列的长度(因为子序列是相对顺序所以有可能不在i-1位置取最长长度)原创 2023-07-13 22:05:12 · 2192 阅读 · 117 评论 -
【Leetcode】动态规划 刷题训练(八)
输入: s = “catsandog”, wordDict = [“cats”, “dog”, “sand”, “and”, “cat”]刚开始分析写出dp[i],但是会发现湍流数组有上升和下降趋势的问题,而dp[i]无法解决,所以再次定义f[i]和g[i]请你判断是否可以利用字典中出现的单词拼接出 s。解释:nums 中有三个子等差数组:[1, 2, 3]、[2, 3, 4] 和 [1,2,3,4] 自身。例如,[1,3,5,7,9]、[7,7,7,7] 和 [3,-1,-5,-9] 都是等差数列。原创 2023-07-01 16:21:26 · 1445 阅读 · 80 评论 -
【LeetCode】动态规划 刷题训练(七)
想求以i位置为结尾的 所有子数组中 乘积为正数的 最长长度,因为nums[i]小于0,则需先求以i-1位置结尾的 所有子数组中 乘积为负数的 最长长度即 g[i-1]想求以i位置为结尾的 所有子数组中 乘积为负数的 最长长度,因为nums[i]大于0,则需先求以i-1位置结尾的 所有子数组中 乘积为负数的 最长长度即。想求以i位置为结尾的 所有子数组中 乘积为正数的 最长长度,因为nums[i]大于0,则需先求以i-1位置结尾的 所有子数组中 乘积为正数的 最长长度即。原创 2023-06-30 19:01:38 · 370 阅读 · 12 评论 -
【LeetCode】动态规划 刷题训练(五)
即 dp[i][0] 持有股票 dp[i][1]保持卖出股票 dp[i][2]卖出股票 dp[i][3] 冷冻期。整数 fee 代表了交易股票的手续费用。当i位置被粉刷为红色时,若想求 [0,i]区间内的 最小花费 ,就应该先求[0,i-1] 区间内的最小花费。当i位置被粉刷为蓝色时,若想求 [0,i]区间内的 最小花费 ,就应该先求[0,i-1] 区间内的最小花费。当i位置被粉刷为绿色时,若想求 [0,i]区间内的 最小花费 ,就应该先求[0,i-1] 区间内的最小花费。原创 2023-06-27 21:05:21 · 970 阅读 · 76 评论 -
【LeetCode】动态规划 刷题训练(四)
你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。因为要的是最长预约时长,所以寻找[0,i-1] 区间内的最长预约时长 ,而i-1位置不能够被取到 即g[i-1]因为要的是最长预约时长,所以寻找[0,i-1] 区间内的最长预约时长 ,而i-1位置能够被取到 即f[i-1]若i位置被偷取到 nums[i]的值,则想要求[0,i]的最大金额,就要先求[0,i-1]的最大金额。f[i]:表示 选择i位置的时候,i位置的值(nums[i]) 必选,此时的最长预约时长。原创 2023-06-26 11:46:06 · 1752 阅读 · 92 评论 -
【LeetCode】 动态规划 刷题训练(三)
第一房间时,就会损失2点健康点数,所以骑士想从第一个房间走出来 就需要3点健康点数,但是此时进入第二个房间,还要损失3点健康点数,骑士直接挂掉了 ,所以 初始3点健康点数不可以。当处于 (row,col)位置处时,下一行 可以选择 (row+1,col)位置 / (row+1,col-1)位置 /(row+1,col+1)位置处的元素。[i,j]位置可以由 [i-1,j-1]位置 / [i-1,j]位置 / [ i-1,j+1]位置 向下移动得到。骑士的初始健康点数为一个正整数。原创 2023-06-25 00:11:35 · 716 阅读 · 46 评论 -
【LeetCode】动态规划 刷题训练(二)
(若[i,j]位置 为 障碍物则为0)若扩列数组位置为[i,j] ,则ob数组为[i-1,j-1] ,该位置若等于1,则为障碍物,其方案数为0。机器人每次只能向下或者向右移动一步。若[i,j]位置没有障碍物,可以从 [i-1,j] 位置 向下 达到 [i,j]位置 ,若[i,j]位置没有障碍物,也可以 从 [i,j-1] 位置 向右达到 [i,j] 位置。输入:obstacleGrid = [[0,0,0],[0,1,0],[0,0,0]]原创 2023-06-23 23:52:13 · 3018 阅读 · 98 评论 -
【LeetCode】动态规划 刷题训练(一)
实现一种方法,计算小孩有多少种上楼梯的方式。可以从 1->2 , 而0到1 只有1种方法,而1到2只需加一步,所以有2种方法。从1->3 ,因为0->1只有1种方法,而1到3只需加一步 ,所以 有1种方法。从2->3,因为0->2有2种方法 ,而2到3只需加一步,所以有2种方法。从1->4,因为0->1 有1种方法,而1到4只需加一步,所以有1种方法。从2->4,因为0->2 有2种方法,而2到4只需加一步,所以有2种方法。从3->4,因为0->3有3种方法,而3到4只需加一步,所以有3种方法。原创 2023-06-22 23:21:50 · 2336 阅读 · 88 评论