动态规划
豌豆射手GCC
这个作者很懒,什么都没留下…
展开
-
二分+动态规划(最长上升子序列) 354. 俄罗斯套娃信封问题
354. 俄罗斯套娃信封问题给定一些标记了宽度和高度的信封,宽度和高度以整数对形式 (w, h) 出现。当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样。请计算最多能有多少个信封能组成一组“俄罗斯套娃”信封(即可以把一个信封放到另一个信封里面)。说明:不允许旋转信封。示例:输入: envelopes = [[5,4],[6,4],[6,7],[2,3]]输出: 3 解释: 最多信封的个数为 3, 组合为: [2,3] => [5,4]原创 2020-06-27 11:55:48 · 190 阅读 · 0 评论 -
动态规划+记忆化递归 343. 整数拆分
343. 整数拆分给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。示例 2:输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。暴力递归每次尝试两数相乘,递归为更多数相乘;class Solution {public: int integerBreak(int n) { if(n原创 2020-06-25 11:32:35 · 250 阅读 · 0 评论 -
动态规划+反向推导+分治 312. 戳气球
312. 戳气球有 n 个气球,编号为0 到 n-1,每个气球上都标有一个数字,这些数字存在数组 nums 中。现在要求你戳破所有的气球。每当你戳破一个气球 i 时,你可以获得 nums[left] * nums[i] * nums[right] 个硬币。 这里的 left 和 right 代表和 i 相邻的两个气球的序号。注意当你戳破了气球 i 后,气球 left 和气球 right 就变成了相邻的气球。求所能获得硬币的最大数量。说明:你可以假设 nums[-1] = nums[n] = 1,但原创 2020-06-14 11:26:48 · 241 阅读 · 0 评论 -
二分查找+动态规划 300. 最长上升子序列
300. 最长上升子序列给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。说明:可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。你算法的时间复杂度应该为 O(n2) 。进阶: 你能将算法的时间复杂度降低到 O(n log n) 吗?解题设置数组tail,每一位存该位上最小的数;从前往后遍历nums,每次找到当前nums应该在tai原创 2020-06-09 10:39:46 · 134 阅读 · 0 评论 -
动态规划+贪心+BFS 279. 完全平方数
279. 完全平方数给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。示例 1:输入: n = 12输出: 3 解释: 12 = 4 + 4 + 4.示例 2:输入: n = 13输出: 2解释: 13 = 4 + 9.动态规划设置dp数组,对小于n的每个平方数设置dp=1;从2开始遍历每个数,对每个数再枚举每种平方数的凑法;最后返回dp[n]即为答案;class Solution {pub原创 2020-06-06 11:20:23 · 211 阅读 · 0 评论 -
二叉树+动态规划+记忆型递归 337. 打家劫舍 III
337. 打家劫舍 III在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。计算在不触动警报的情况下,小偷一晚能够盗取的最高金额。示例 1:输入: [3,2,3,null,3,null,1] 3 / \ 2 3原创 2020-05-30 11:45:00 · 186 阅读 · 0 评论 -
动态规划 回溯剪枝 139. 单词拆分 140. 单词拆分 II
139. 单词拆分给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入: s = "leetcode", wordDict = ["leet", "code"]输出: true解释: 返回 true 因为 “leetcode” 可以被拆分成 “leet code”。示例 2:输入: s = "applepenapple",原创 2020-05-23 14:03:54 · 255 阅读 · 0 评论 -
动态规划预处理+动态规划求解 132. 分割回文串 II
132. 分割回文串 II给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。返回符合要求的最少分割次数。示例:输入: "aab"输出: 1解释: 进行一次分割就可将 s 分割成 [“aa”,“b”] 这样两个回文子串。动态规划(中心拓展)预处理+dfs求解(超时)先动态规划或中心拓展法,得到每两个的位置之间是否为回文字符串;然后尝试从每个位置切,得到答案——超时;class Solution {public: int minCut(string s) {原创 2020-05-21 14:38:11 · 265 阅读 · 0 评论 -
动态规划 309. 最佳买卖股票时机含冷冻期 714. 买卖股票的最佳时机含手续费
309. 最佳买卖股票时机含冷冻期给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。示例:输入: [1,2,3,0,2]输出: 3 解释: 对应的交易状态为: [买入, 卖出, 冷冻期, 买入, 卖出]解题:动态规划不将冷冻期作为状态,将冷冻期作为买原创 2020-05-20 11:24:41 · 160 阅读 · 0 评论 -
动态规划的泛化+三维dp 123. 买卖股票的最佳时机 III 188. 买卖股票的最佳时机 IV
123. 买卖股票的最佳时机 III给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [3,3,5,0,0,3,1,4]输出: 6解释: 在第 4 天(股票价格 = 0)的时候买入,在第 6 天(股票价格 = 3)的时候卖出,这笔交易所能获得利润 = 3-0 = 3 。随后,在第 7 天(股票价格 = 1)的时候买入,原创 2020-05-19 18:26:43 · 241 阅读 · 0 评论 -
动态规划 115. 不同的子序列
115. 不同的子序列给定一个字符串 S 和一个字符串 T,计算在 S 的子序列中 T 出现的个数。一个字符串的一个子序列是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,“ACE” 是 “ABCDE” 的一个子序列,而 “AEC” 不是)题目数据保证答案符合 32 位带符号整数范围。示例 1:输入:S = "rabbbit", T = "rabbit"输出:3解释:如下图所示, 有 3 种可以从 S 中得到 "rabbit" 的方案。(上箭头符号原创 2020-05-19 12:13:50 · 244 阅读 · 0 评论 -
动态规划 152. 乘积最大子数组
152. 乘积最大子数组给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例 1:输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。解题设dp[i]为以i为终点的最大子数组乘积;若给定数字>=0,则最大乘积为max(dp[i-1]*nums[i],nums[i])原创 2020-05-18 11:22:53 · 142 阅读 · 0 评论 -
动态规划+双向扩散 494. 目标和
给定一个非负整数数组,a1, a2, …, an, 和一个目标数,S。现在你有两个符号 + 和 -。对于数组中的任意一个整数,你都可以从 + 或 -中选择一个符号添加在前面。返回可以使最终数组和为目标数 S 的所有添加符号的方法数。示例 1:输入: nums: [1, 1, 1, 1, 1], S: 3输出: 5解释: -1+1+1+1+1 = 3+1-1+1+1+1 = 3+1+1-1+1+1 = 3+1+1+1-1+1 = 3+1+1+1+1-1 = 3一共有5种方法让最终目标原创 2020-05-16 15:58:17 · 284 阅读 · 0 评论 -
动态规划+滚动数组 97. 交错字符串
97. 交错字符串给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的。示例 1:输入: s1 = "aabcc", s2 = "dbbca", s3 = "aadbbcbcac"输出: true示例 2:输入: s1 = "aabcc", s2 = "dbbca", s3 = "aadbbbaccc"输出: false解题二维数组+动态规划记录s1的前i个字符和s2的前j个字符能否组成s3的前i+j个字符;递推公式取s1的下一个字符:dp[i原创 2020-05-16 12:11:47 · 116 阅读 · 0 评论 -
动态规划+卡塔兰数+递归 96. 不同的二叉搜索树 95. 不同的二叉搜索树 II
96. 不同的二叉搜索树给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种?示例:输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 / / \ \ 2 1原创 2020-05-15 16:02:12 · 168 阅读 · 0 评论 -
动态规划+多条件 91. 解码方法 639. 解码方法 2
一条包含字母 A-Z 的消息通过以下方式进行了编码:'A' -> 1'B' -> 2...'Z' -> 26给定一个只包含数字的非空字符串,请计算解码方法的总数。示例 1:输入: "12"输出: 2解释: 它可以解码为 “AB”(1 2)或者 “L”(12)。示例 2:输入: "226"输出: 3解释: 它可以解码为 “BZ” (2 26), “VF” (22 6), 或者 “BBF” (2 2 6) 。class Solution {public:原创 2020-05-14 15:53:25 · 218 阅读 · 0 评论 -
动态规划+从后往前+概率相加推断+动态更新记录值 837. 新21点
837. 新21点爱丽丝参与一个大致基于纸牌游戏 “21点” 规则的游戏,描述如下:爱丽丝以 0 分开始,并在她的得分少于 K 分时抽取数字。 抽取时,她从 [1, W] 的范围中随机获得一个整数作为分数进行累计,其中 W 是整数。 每次抽取都是独立的,其结果具有相同的概率。当爱丽丝获得不少于 K 分时,她就停止抽取数字。 爱丽丝的分数不超过 N 的概率是多少?示例 1:输入:N = 10, K = 1, W = 10输出:1.00000说明:爱丽丝得到一张卡,然后停止。示例 2:输入:原创 2020-05-14 11:13:34 · 310 阅读 · 0 评论 -
动态规划(四重循环降为三重)+递归 87. 扰乱字符串
87. 扰乱字符串给定一个字符串 s1,我们可以把它递归地分割成两个非空子字符串,从而将其表示为二叉树。下图是字符串 s1 = “great” 的一种可能的表示形式。 great / \ gr eat / \ / \g r e at / \ a t在扰乱这个字符串的过程中,我们可以挑选任何一个非叶节点,然后交换它的两个子节点。例如,如果我们挑选非叶节点 “gr” ,交换它的两个子节点,将会产生扰乱字符原创 2020-05-13 16:04:15 · 254 阅读 · 0 评论 -
双向队列+动态规划(左至右遍历+右至左遍历) 239. 滑动窗口最大值
239. 滑动窗口最大值给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。进阶:你能在线性时间复杂度内解决此题吗?示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7] 解释: 滑动窗口的位置 最大值--------------- --原创 2020-05-12 11:52:45 · 406 阅读 · 0 评论 -
动态规划+前ij个字符串比较 72. 编辑距离
72. 编辑距离给你两个单词 word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例 1:输入:word1 = "horse", word2 = "ros"输出:3解释:horse -> rorse (将 'h' 替换为 'r')rorse -> rose (删除 'r')rose -> ros (删除 'e')示例 2:输入:word1 = "原创 2020-05-11 13:06:08 · 171 阅读 · 0 评论 -
动态规划+四维数组降维+滚动数组降维 741. 摘樱桃
741. 摘樱桃一个N x N的网格(grid) 代表了一块樱桃地,每个格子由以下三种数字的一种来表示:0 表示这个格子是空的,所以你可以穿过它。1 表示这个格子里装着一个樱桃,你可以摘到樱桃然后穿过它。-1 表示这个格子里有荆棘,挡着你的路。你的任务是在遵守下列规则的情况下,尽可能的摘到最多樱桃:从位置 (0, 0) 出发,最后到达 (N-1, N-1) ,只能向下或向右走,并且只能穿越有效的格子(即只可以穿过值为0或者1的格子);当到达 (N-1, N-1) 后,你要继续走,直到返回到 (原创 2020-05-10 21:42:53 · 557 阅读 · 0 评论 -
动态规划+终点推起点(倒推)+找最优子问题 174. 地下城游戏
174. 地下城游戏一些恶魔抓住了公主(P)并将她关在了地下城的右下角。地下城是由 M x N 个房间组成的二维网格。我们英勇的骑士(K)最初被安置在左上角的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。骑士的初始健康点数为一个正整数。如果他的健康点数在某一时刻降至 0 或以下,他会立即死亡。有些房间由恶魔守卫,因此骑士在进入这些房间时会失去健康点数(若房间里的值为负整数,则表示骑士将损失健康点数);其他房间要么是空的(房间里的值为 0),要么包含增加骑士健康点数的魔法球(若房间里的值为正整数,则原创 2020-05-10 12:10:40 · 431 阅读 · 0 评论 -
动态规划+柱状图求最大面积问题 85. 最大矩形 84. 柱状图中最大的矩形
85. 最大矩形给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。示例:输入:[ ["1","0","1","0","0"], ["1","0","1","1","1"], ["1","1","1","1","1"], ["1","0","0","1","0"]]输出: 6解题动态规划得到每个点左边连续1的长度,转化为柱状图求最大面积问题;解法1:每一行得到连续1的长度,求柱形图最大面积每个位置往下扫一遍;class Soluti原创 2020-05-08 21:44:40 · 601 阅读 · 0 评论 -
动态规划+计算每个点的四个属性 764. 最大加号标志
764. 最大加号标志在一个大小在 (0, 0) 到 (N-1, N-1) 的2D网格 grid 中,除了在 mines 中给出的单元为 0,其他每个单元都是 1。网格中包含 1 的最大的轴对齐加号标志是多少阶?返回加号标志的阶数。如果未找到加号标志,则返回 0。一个 k" 阶由 1 组成的“轴对称”加号标志具有中心网格 grid[x][y] = 1 ,以及4个从中心向上、向下、向左、向右延...原创 2020-05-08 14:18:23 · 203 阅读 · 0 评论 -
动态规划+以ij为结束点的() 221. 最大正方形
221. 最大正方形在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。示例:输入: 1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0输出: 4动态规划:记录以ij为右下角的正方形面积递推方程:dp[i][j]=min(dp[i-1][j],dp[i][j-1])>0?(sqrt(min(dp[i-1][j],...原创 2020-05-08 13:33:58 · 183 阅读 · 0 评论 -
动态规划+字符匹配+递推回溯 44. 通配符匹配
44. 通配符匹配给定一个字符串 (s) 和一个字符模式 § ,实现一个支持 ‘?’ 和 ‘*’ 的通配符匹配。‘?’ 可以匹配任何单个字符。‘*’ 可以匹配任意字符串(包括空字符串)。两个字符串完全匹配才算匹配成功。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 ? 和 *。示例 1:输入:s = "aa"p = ...原创 2020-05-07 22:32:31 · 169 阅读 · 0 评论 -
动态规划+记忆化搜索(日期变量)+倒叙规划+滚动数组 983. 最低票价 322. 零钱兑换
983. 最低票价在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行。在接下来的一年里,你要旅行的日子将以一个名为 days 的数组给出。每一项是一个从 1 到 365 的整数。火车票有三种不同的销售方式:一张为期一天的通行证售价为 costs[0] 美元;一张为期七天的通行证售价为 costs[1] 美元;一张为期三十天的通行证售价为 costs[2] 美元。通行证允许数天无...原创 2020-05-06 14:26:04 · 180 阅读 · 0 评论 -
动态规划+双向遍历记录括号+堆栈记录下标得到匹配括号长度 32. 最长有效括号
32. 最长有效括号给定一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。示例 1:输入: "(()"输出: 2解释: 最长有效括号子串为 “()”示例 2:输入: ")()())"输出: 4解释: 最长有效括号子串为 “()()”解题将括号可能出现的顺序分类:(1)‘()()()()’ 任意方向遍历可以得到(2)‘((()))’ 任意方...原创 2020-05-04 22:08:55 · 221 阅读 · 0 评论 -
滑动窗口+哈希计数匹配字符串+map判断匹配是否成功 30. 串联所有单词的子串 76. 最小覆盖子串
30. 串联所有单词的子串给定一个字符串 s 和一些长度相同的单词 words。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。注意子串要与 words 中的单词完全匹配,中间不能有其他字符,但不需要考虑 words 中单词串联的顺序。示例 1:输入: s = "barfoothefoobarman", words = ["foo","bar"]输出:[0...原创 2020-05-04 00:16:00 · 175 阅读 · 0 评论 -
哈希map+字典树+字符串 336. 回文对
给定一组唯一的单词, 找出所有不同 的索引对(i, j),使得列表中的两个单词, words[i] + words[j] ,可拼接成回文串。示例 1:输入: ["abcd","dcba","lls","s","sssll"]输出: [[0,1],[1,0],[3,2],[2,4]] 解释: 可拼接成的回文串为 ["dcbaabcd","abcddcba","slls","llssssll"...原创 2020-05-03 14:36:41 · 225 阅读 · 0 评论 -
KMP(最长相同前后缀)+字符串匹配+双指针 28. 实现 strStr() 214. 最短回文串
28. 实现 strStr()实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaa...原创 2020-05-02 15:50:32 · 733 阅读 · 0 评论 -
最小堆+动态规划(三指针) 264. 丑数 II
264. 丑数 II编写一个程序,找出第 n 个丑数。丑数就是只包含质因数 2, 3, 5 的正整数。示例:输入: n = 10输出: 12解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。说明:1 是丑数。n 不超过1690。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/ugl...原创 2020-04-27 13:38:50 · 146 阅读 · 0 评论 -
动态规划+最优子问题+滚动数组 面试题47. 礼物的最大价值
面试题47. 礼物的最大价值在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?示例 1:输入: [ [1,3,1], [1,5,1], [4,2,1]]输出: 12解释: 路径 1...原创 2020-04-23 20:34:08 · 230 阅读 · 0 评论 -
动态规划+01背包问题/完美背包问题+滚动数组 面试题 08.11. 硬币
面试题 08.11. 硬币硬币。给定数量不限的硬币,币值为25分、10分、5分和1分,编写代码计算n分有几种表示法。(结果可能会很大,你需要将结果模上1000000007)示例1: 输入: n = 5 输出:2 解释: 有两种方式可以凑成总金额:5=55=1+1+1+1+1示例2: 输入: n = 10 输出:4 解释: 有四种方式可以凑成总金额:10=1010=5+5...原创 2020-04-23 20:26:17 · 239 阅读 · 0 评论 -
子数组处理+数学+滑动窗口+下标保存 leetcode 1248. 统计「优美子数组」
1248. 统计「优美子数组」给你一个整数数组 nums 和一个整数 k。如果某个 连续 子数组中恰好有 k 个奇数数字,我们就认为这个子数组是「优美子数组」。请返回这个数组中「优美子数组」的数目。示例 1:输入:nums = [1,1,2,1,1], k = 3输出:2解释:包含 3 个奇数的子数组是 [1,1,2,1] 和 [1,2,1,1] 。示例 2:输入:nums =...原创 2020-04-21 22:42:23 · 276 阅读 · 0 评论 -
双指针 leetcode11. 盛最多水的容器+42. 接雨水
11. 盛最多水的容器给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容...原创 2020-04-18 13:43:12 · 237 阅读 · 0 评论 -
动态规划+中心拓展法 5. 最长回文子串.516. 最长回文子序列 647. 回文子串
5. 最长回文子串给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”解题思路子串问题,动态规划1.最优子问题dp[i][j],表示第i个字符到第j个字符是否是回文字符串若dp[i+1][j-1]是回文字...原创 2020-03-23 16:30:16 · 182 阅读 · 0 评论 -
DFS+动态规划 10 正则表达式匹配
给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符‘*’ 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 . 和 *。示例 1:输入:s = “aa”p = “...原创 2020-03-22 13:32:12 · 186 阅读 · 0 评论 -
动态规划 003:最佳加法表达式
003:最佳加法表达式总时间限制: 1000ms 内存限制: 65536kB描述给定n个1到9的数字,要求在数字之间摆放m个加号(加号两边必须有数字),使得所得到的加法表达式的值最小,并输出该值。例如,在1234中摆放1个加号,最好的摆法就是12+34,和为36输入有不超过15组数据每组数据两行。第一行是整数m,表示有m个加号要放( 0<=m<=50)第二行是若干个数字。...原创 2020-03-21 12:26:09 · 967 阅读 · 0 评论 -
动态规划 002:Zipper
002:Zipper总时间限制: 1000ms 内存限制: 65536kB描述Given three strings, you are to determine whether the third string can be formed by combining the characters in the first two strings. The first two strings c...原创 2020-03-21 11:34:28 · 284 阅读 · 0 评论