随笔分类 -  动态规划

摘要:给你一个字符串 s,找到 s 中最长的回文子串。 class Solution { public: string longestPalindrome(string s) { int n = s.size(); if (n < 2) { return s; } int maxlen = 1; stri 阅读全文
posted @ 2021-12-21 10:05 _西瓜不甜 阅读(38) 评论(0) 推荐(0)
摘要:给你一个 m x n 的整数矩阵 points (下标从 0 开始)。一开始你的得分为 0 ,你想最大化从矩阵中得到的分数。 你的得分方式为:每一行 中选取一个格子,选中坐标为 (r, c) 的格子会给你的总得分 增加 points[r][c] 。 然而,相邻行之间被选中的格子如果隔得太远,你会失去 阅读全文
posted @ 2021-07-19 15:14 _西瓜不甜 阅读(62) 评论(0) 推荐(0)
摘要:给定不同面额的硬币和一个总金额。写出函数来计算可以凑成总金额的硬币组合数。假设每一种面额的硬币有无限个。 示例 1: 输入: amount = 5, coins = [1, 2, 5] 输出: 4 解释: 有四种方式可以凑成总金额: 5=5 5=2+2+1 5=2+1+1+1 5=1+1+1+1+1 阅读全文
posted @ 2021-06-10 08:56 _西瓜不甜 阅读(56) 评论(0) 推荐(0)
摘要:有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x ⇐ y。那么粉碎的可能结果如下: 如果 x == y,那么两块石头都会被完全粉碎; 如果 x != y,那么 阅读全文
posted @ 2021-06-08 09:12 _西瓜不甜 阅读(77) 评论(0) 推荐(0)
摘要:给你一个二进制字符串数组 strs 和两个整数 m 和 n 。 请你找出并返回 strs 的最大子集的大小,该子集中 最多 有 m 个 0 和 n 个 1 。 如果 x 的所有元素也是 y 的元素,集合 x 是集合 y 的 子集 。 示例 1: 输入:strs = ["10", "0001", "1 阅读全文
posted @ 2021-06-06 09:57 _西瓜不甜 阅读(72) 评论(0) 推荐(0)
摘要:你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。 给定一个代表每个房屋存放金额的非负整数数组,计算你 在不 阅读全文
posted @ 2021-04-15 08:57 _西瓜不甜 阅读(61) 评论(0) 推荐(0)
摘要:给定一个整数数组 prices ,它的第 i 个元素 prices[i] 是一支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 输入:k = 2, prices = 阅读全文
posted @ 2020-12-28 08:59 _西瓜不甜 阅读(113) 评论(0) 推荐(0)
摘要:给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 ;非负整数 fee 代表了交易股票的手续费用。 你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。 返回获得利润的最大值。 注意:这里的一笔交易指买入持有 阅读全文
posted @ 2020-12-17 09:04 _西瓜不甜 阅读(87) 评论(0) 推荐(0)
摘要:石子游戏中,爱丽丝和鲍勃轮流进行自己的回合,爱丽丝先开始 。 有 n 块石子排成一排。每个玩家的回合中,可以从行中 移除 最左边的石头或最右边的石头,并获得与该行中剩余石头值之 和 相等的得分。当没有石头可移除时,得分较高者获胜。 鲍勃发现他总是输掉游戏(可怜的鲍勃,他总是输),所以他决定尽力 减小 阅读全文
posted @ 2020-12-13 16:59 _西瓜不甜 阅读(90) 评论(0) 推荐(0)
摘要:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 问总共有多少条不同的路径? 别去真的dfs,会超时,用动态规划 class Solution { public 阅读全文
posted @ 2020-12-09 08:50 _西瓜不甜 阅读(93) 评论(0) 推荐(0)
摘要:你将会获得一系列视频片段,这些片段来自于一项持续时长为 T 秒的体育赛事。这些片段可能有所重叠,也可能长度不一。 视频片段 clips[i] 都用区间进行表示:开始于 clips[i][0] 并于 clips[i][1] 结束。我们甚至可以对这些片段自由地再剪辑,例如片段 [0, 7] 可以剪切成  阅读全文
posted @ 2020-10-24 09:07 _西瓜不甜 阅读(2841) 评论(0) 推荐(0)
摘要:给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 注意: 每个数组中的元素不会超过 100 数组的大小不会超过 200 示例 1: 输入: [1, 5, 11, 5] 输出: true 解释: 数组可以分割成 [1, 5, 5] 和 [11]. 示例 2: 阅读全文
posted @ 2020-10-11 18:54 _西瓜不甜 阅读(120) 评论(0) 推荐(0)
摘要:如果序列 X_1, X_2, ..., X_n 满足下列条件,就说它是 斐波那契式 的: n >= 3 对于所有 i + 2 ⇐ n,都有 X_i + X_{i+1} = X_{i+2} 给定一个严格递增的正整数数组形成序列,找到 A 中最长的斐波那契式的子序列的长度。如果一个不存在,返回 0 。 阅读全文
posted @ 2020-10-09 09:38 _西瓜不甜 阅读(201) 评论(0) 推荐(0)
摘要:小扣出去秋游,途中收集了一些红叶和黄叶,他利用这些叶子初步整理了一份秋叶收藏集 leaves, 字符串 leaves 仅包含小写字符 r 和 y, 其中字符 r 表示一片红叶,字符 y 表示一片黄叶。 出于美观整齐的考虑,小扣想要将收藏集中树叶的排列调整成「红、黄、红」三部分。每部分树叶数量可以不相 阅读全文
posted @ 2020-10-03 21:54 _西瓜不甜 阅读(119) 评论(0) 推荐(0)
摘要:给你一个大小为 rows x cols 的矩阵 grid 。最初,你位于左上角 (0, 0) ,每一步,你可以在矩阵中 向右 或 向下 移动。 在从左上角 (0, 0) 开始到右下角 (rows - 1, cols - 1) 结束的所有路径中,找出具有 最大非负积 的路径。路径的积是沿路径访问的单元 阅读全文
posted @ 2020-09-20 15:26 _西瓜不甜 阅读(159) 评论(0) 推荐(0)
摘要:给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。 示例 2: 输入: [-2,0,-1] 输出: 0 解释: 结果不能为 2 阅读全文
posted @ 2020-09-07 10:48 _西瓜不甜 阅读(119) 评论(0) 推荐(0)
摘要:给你一个整数数组 nums ,请你求出乘积为正数的最长子数组的长度。 一个数组的子数组是由原数组中零个或者更多个连续数字组成的数组。 请你返回乘积为正数的最长子数组长度。 示例 1: 输入:nums = [1,-2,-3,4] 输出:4 解释:数组本身乘积就是正数,值为 24 。 来源:力扣(Lee 阅读全文
posted @ 2020-09-07 09:47 _西瓜不甜 阅读(302) 评论(0) 推荐(0)
摘要:给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例: 输入: [ [1,3,1], [1,5,1], [4,2,1] ] 输出: 7 解释: 因为路径 1→3→1→1→1 的总和最小。 来源:力扣(Le 阅读全文
posted @ 2020-07-25 15:14 _西瓜不甜 阅读(150) 评论(0) 推荐(0)
摘要:有 n 个气球,编号为0 到 n-1,每个气球上都标有一个数字,这些数字存在数组 nums 中。 现在要求你戳破所有的气球。如果你戳破气球 i ,就可以获得 nums[left] * nums[i] * nums[right] 个硬币。 这里的 left 和 right 代表和 i 相邻的两个气球的 阅读全文
posted @ 2020-07-20 22:54 _西瓜不甜 阅读(144) 评论(0) 推荐(0)
摘要:给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的。 示例 1: 输入:s1 = "aabcc", s2 = "dbbca", s3 = "aadbbcbcac" 输出:true 示例 2: 输入:s1 = "aabcc", s2 = "dbbca", s3 = 阅读全文
posted @ 2020-07-20 22:14 _西瓜不甜 阅读(114) 评论(0) 推荐(0)