随笔分类 -  动态规划

摘要:3366. 最小数组和 给你一个整数数组 nums 和三个整数 k、op1 和 op2。 你可以对 nums 执行以下操作: 操作 1:选择一个下标 i,将 nums[i] 除以 2,并 向上取整 到最接近的整数。你最多可以执行此操作 op1 次,并且每个下标最多只能执行一次。操作 2:选择一个下标 阅读全文
posted @ 2024-11-26 11:10 旺仔古李 阅读(64) 评论(0) 推荐(0)
摘要:2712. 使所有字符相等的最小成本 给你一个下标从 0 开始、长度为 n 的二进制字符串 s ,你可以对其执行两种操作: 选中一个下标 i 并且反转从下标 0 到下标 i(包括下标 0 和下标 i )的所有字符,成本为 i + 1 。 选中一个下标 i 并且反转从下标 i 到下标 n - 1(包括 阅读全文
posted @ 2023-05-30 16:53 旺仔古李 阅读(65) 评论(0) 推荐(0)
摘要:2707. 字符串中的额外字符 给你一个下标从 0 开始的字符串 s 和一个单词字典 dictionary 。你需要将 s 分割成若干个 互不重叠 的子字符串,每个子字符串都在 dictionary 中出现过。s 中可能会有一些 额外的字符 不在任何子字符串中。 请你采取最优策略分割 s ,使剩下的 阅读全文
posted @ 2023-05-30 16:42 旺仔古李 阅读(127) 评论(0) 推荐(0)
摘要:我们把玻璃杯摆成金字塔的形状,其中第一层有1个玻璃杯,第二层有2个,依次类推到第100层,每个玻璃杯(250ml)将盛有香槟。 从顶层的第一个玻璃杯开始倾倒一些香槟,当顶层的杯子满了,任何溢出的香槟都会立刻等流量的流向左右两侧的玻璃杯。当左右两边的杯子也满了,就会等流量的流向它们左右两边的杯子,依次 阅读全文
posted @ 2021-12-05 17:22 旺仔古李 阅读(109) 评论(0) 推荐(0)
摘要:有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为 x 和 y,且 x <= y。那么粉碎的可能结果如下: 如果 x == y,那么两块石头都会被完全粉碎;如果 x != y,那么 阅读全文
posted @ 2021-11-26 11:50 旺仔古李 阅读(71) 评论(0) 推荐(0)
摘要:给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 输入:prices = [3,3,5,0,0,3,1,4]输出:6解释:在第 阅读全文
posted @ 2021-10-17 12:18 旺仔古李 阅读(48) 评论(0) 推荐(0)
摘要:给定一个字符串 s 和一个字符串 t ,计算在 s 的子序列中 t 出现的个数。 字符串的一个 子序列 是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,"ACE" 是 "ABCDE" 的一个子序列,而 "AEC" 不是) 题目数据保证答案符合 32 位带符号整 阅读全文
posted @ 2021-10-17 11:34 旺仔古李 阅读(87) 评论(0) 推荐(0)
摘要:附近的家居城促销,你买回了一直心仪的可调节书架,打算把自己的书都整理到新的书架上。 你把要摆放的书 books 都整理好,叠成一摞:从上往下,第 i 本书的厚度为 books[i][0],高度为 books[i][1]。 按顺序 将这些书摆放到总宽度为 shelf_width 的书架上。 先选几本书 阅读全文
posted @ 2021-10-07 19:49 旺仔古李 阅读(74) 评论(0) 推荐(0)
摘要:假如有一排房子,共 n 个,每个房子可以被粉刷成红色、蓝色或者绿色这三种颜色中的一种,你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。 当然,因为市场上不同颜色油漆的价格不同,所以房子粉刷成不同颜色的花费成本也是不同的。每个房子粉刷成不同颜色的花费是以一个 n x 3 的正整数矩阵 cost 阅读全文
posted @ 2021-09-30 11:04 旺仔古李 阅读(40) 评论(0) 推荐(0)
摘要:一条包含字母 A-Z 的消息通过以下的方式进行了编码: 'A' -> 1'B' -> 2...'Z' -> 26要 解码 一条已编码的消息,所有的数字都必须分组,然后按原来的编码方案反向映射回字母(可能存在多种方式)。例如,"11106" 可以映射为: "AAJF" 对应分组 (1 1 10 6)" 阅读全文
posted @ 2021-09-27 13:06 旺仔古李 阅读(140) 评论(0) 推荐(0)
摘要:有两种形状的瓷砖:一种是 2x1 的多米诺形,另一种是形如 "L" 的托米诺形。两种形状都可以旋转。 XX <- 多米诺 XX <- "L" 托米诺X给定 N 的值,有多少种方法可以平铺 2 x N 的面板?返回值 mod 10^9 + 7。 (平铺指的是每个正方形都必须有瓷砖覆盖。两个平铺不同,当 阅读全文
posted @ 2021-09-25 13:45 旺仔古李 阅读(116) 评论(0) 推荐(0)
摘要:满二叉树是一类二叉树,其中每个结点恰好有 0 或 2 个子结点。 返回包含 N 个结点的所有可能满二叉树的列表。 答案的每个元素都是一个可能树的根结点。 答案中每个树的每个结点都必须有 node.val=0。 你可以按任何顺序返回树的最终列表。 示例: 输入:7输出:[[0,0,0,null,nul 阅读全文
posted @ 2021-09-04 21:55 旺仔古李 阅读(89) 评论(0) 推荐(0)
摘要:可以用字符串表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺勤、迟到、到场)。记录中只含下面三种字符:'A':Absent,缺勤'L':Late,迟到'P':Present,到场如果学生能够 同时 满足下面两个条件,则可以获得出勤奖励: 按 总出勤 计,学生缺勤('A')严格 少于两 阅读全文
posted @ 2021-08-18 10:34 旺仔古李 阅读(109) 评论(0) 推荐(0)
摘要:给定两个单词 word1 和 word2,找到使得 word1 和 word2 相同所需的最小步数,每步可以删除任意一个字符串中的一个字符。 示例: 输入: "sea", "eat"输出: 2解释: 第一步将"sea"变为"ea",第二步将"eat"变为"ea" 提示: 给定单词的长度不超过500。 阅读全文
posted @ 2021-08-13 14:40 旺仔古李 阅读(58) 评论(0) 推荐(0)
摘要:在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动 阅读全文
posted @ 2021-07-06 17:47 旺仔古李 阅读(43) 评论(0) 推荐(0)
摘要:给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。​ 设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票): 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。 示 阅读全文
posted @ 2021-07-06 10:46 旺仔古李 阅读(38) 评论(0) 推荐(0)
摘要:给你一个二进制字符串数组 strs 和两个整数 m 和 n 。 请你找出并返回 strs 的最大子集的大小,该子集中 最多 有 m 个 0 和 n 个 1 。 如果 x 的所有元素也是 y 的元素,集合 x 是集合 y 的 子集 。 示例 1: 输入:strs = ["10", "0001", "1 阅读全文
posted @ 2021-06-24 13:22 旺仔古李 阅读(36) 评论(0) 推荐(0)
摘要:给你一个正整数数组 values,其中 values[i] 表示第 i 个观光景点的评分,并且两个景点 i 和 j 之间的 距离 为 j - i。 一对景点(i < j)组成的观光组合的得分为 values[i] + values[j] + i - j ,也就是景点的评分之和 减去 它们两者之间的距 阅读全文
posted @ 2021-06-22 17:35 旺仔古李 阅读(51) 评论(0) 推荐(0)
摘要:给你一个数组 arr ,请你将每个元素用它右边最大的元素替换,如果是最后一个元素,用 -1 替换。 完成所有替换操作后,请你返回这个数组。 示例 1: 输入:arr = [17,18,5,4,6,1]输出:[18,6,6,6,1,-1]解释:- 下标 0 的元素 --> 右侧最大元素是下标 1 的元 阅读全文
posted @ 2021-06-08 16:01 旺仔古李 阅读(54) 评论(0) 推荐(0)
摘要:给你一个 n x n 的 方形 整数数组 matrix ,请你找出并返回通过 matrix 的下降路径 的 最小和 。 下降路径 可以从第一行中的任何元素开始,并从每一行中选择一个元素。在下一行选择的元素和当前行所选元素最多相隔一列(即位于正下方或者沿对角线向左或者向右的第一个元素)。具体来说,位置 阅读全文
posted @ 2021-06-04 15:27 旺仔古李 阅读(65) 评论(0) 推荐(0)