
动态规划
Loganer
这个作者很懒,什么都没留下…
展开
-
简单动态规划—断环成链
f[i][k]表示第i人传球k次 的方法数。特殊处理边界数据#include<stdio.h>int f[99][99];int main(){ int i,k,n,m; scanf("%d%d",&n,&m); f[1][0]=1; for(k=1;k<=m;k++) { f[1][k]=f[2][...原创 2018-05-20 17:44:34 · 801 阅读 · 0 评论 -
LeetCode 221. 最大正方形
在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。示例:输入: 1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0输出: 4dp[i][j]表示当前 i,j 位置所能构成的最大正方形的边长。class Solution {public: int maximalSquare(vector<...原创 2019-05-06 21:14:05 · 252 阅读 · 0 评论 -
LeetCode 152. 乘积最大子序列
给定一个整数数组nums,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。示例 1:输入: [2,3,-2,4]输出: 6解释:子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释:结果不能为 2, 因为 [-2,-1] 不是子数组。暴力解一发,居然能过,数据也太水了吧。不过看看时间和空间,很惨。clas...原创 2019-05-19 20:22:06 · 174 阅读 · 0 评论 -
LeetCode 279. 完全平方数
给定正整数n,找到若干个完全平方数(比如1, 4, 9, 16, ...)使得它们的和等于n。你需要让组成和的完全平方数的个数最少。示例1:输入: n = 12输出: 3 解释: 12 = 4 + 4 + 4.示例 2:输入: n = 13输出: 2解释: 13 = 4 + 9.转化为背包问题求解。dp[j]:在面对"容量"(给出的数n)时,在前i...原创 2019-05-09 21:34:02 · 333 阅读 · 0 评论 -
LeetCode 322. 零钱兑换
给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回-1。示例1:输入: coins = [1, 2, 5], amount = 11输出: 3 解释: 11 = 5 + 5 + 1示例 2:输入: coins = [2], amount = 3输出: -1说明...原创 2019-05-20 13:01:11 · 311 阅读 · 0 评论 -
LeetCode 300. 最长上升子序列
给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4 解释: 最长的上升子序列是[2,3,7,101],它的长度是 4说明:可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。 你算法的时间复杂度应该为O(n2) 。分析: 中规中矩的dp问题,难度是中等。 ...原创 2019-05-10 16:52:10 · 106 阅读 · 0 评论 -
LeetCode 139. 单词拆分
给定一个非空字符串s和一个包含非空单词列表的字典wordDict,判定s是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。示例 1:输入: s = "leetcode", wordDict = ["leet", "code"]输出: true解释: 返回 true 因为 "leetcode" 可...原创 2019-05-27 17:03:58 · 119 阅读 · 0 评论 -
LeetCode 55. 跳跃游戏
给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例1:输入: [2,3,1,1,4]输出: true解释: 从位置 0 到 1 跳 1 步, 然后跳 3 步到达最后一个位置。示例2:输入: [3,2,1,0,4]输出: false解释: 无论怎样,你总会到达索引为 3 的...原创 2019-06-04 21:43:16 · 131 阅读 · 0 评论 -
YTU OJ 3139: 动态规划进阶题目之最佳加法表达式
3139: 动态规划进阶题目之最佳加法表达式题目描述有一个由1..9组成的数字串.问如果将m个加 号插入到这个数字串中,在各种可能形成的 表达式中,值最小的那个表达式的值是多少 。例如,在1234中摆放1个加号,最好的摆法就是12+34,和为36输入有不超过15组数据每组数据两行。第一行是整数m,表示有m个加号要放( 0<=m<=17)第二行是若干个数字。数字...原创 2019-08-31 15:35:21 · 618 阅读 · 0 评论 -
LeetCode 64. 最小路径和
给定一个包含非负整数的mxn网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[ [1,3,1], [1,5,1], [4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。class Solution {public: int minPathSum...原创 2019-04-20 16:48:57 · 158 阅读 · 0 评论 -
LeetCode 63. 不同路径 II
一个机器人位于一个m x n网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用1和0来表示。说明:m和n的值均不超过 100。示例1:输入:[ ...原创 2019-04-19 15:49:21 · 96 阅读 · 0 评论 -
YTU OJ 3310: Curriculum Vitae
3310: Curriculum Vitae 题目描述Hideo Kojima刚辞去Konami的工作。现在他将找到一个新的工作场所。尽管他是一个知名人士,但他仍然需要一份简历来申请工作。 在他的职业生涯中,已经制作了n个游戏。其中一些是成功的,有些则不是。Hideo希望从他的简历中删除其中几个,以便给雇主留下更好的印象。因此,在他的简历中,成功的游戏后应该没有不成功的游戏...原创 2018-09-17 17:15:47 · 308 阅读 · 0 评论 -
LeetCode 5. 最长回文子串
给定一个字符串s,找到s中最长的回文子串。你可以假设s的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"class Solution {public: string longestPalindrome(string s) { ...原创 2019-04-15 20:28:23 · 92 阅读 · 0 评论 -
LeetCode 70.爬楼梯
class Solution {public: int climbStairs(int n) { if(n==1) { return 1; } int dp[n+1]; dp[1] = 1; dp[2] = 2; for(int i=3;i<=n;i++){ ...原创 2019-04-13 17:27:49 · 121 阅读 · 0 评论 -
LeetCode 120. 三角形最小路径和
给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。例如,给定三角形:[ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和为11(即,2+3+5+1= 11)。说明:如果你可以只使用O(n)的额外空间(n为三角形的总行数)来解决这个问题,那么你的算法会很加分。...原创 2019-04-21 13:58:44 · 152 阅读 · 0 评论 -
LeetCode 96. 不同的二叉搜索树
给定一个整数n,求以1 ...n为节点组成的二叉搜索树有多少种?示例:输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 ...原创 2019-04-22 20:28:23 · 122 阅读 · 0 评论 -
LeetCode 198. 打家劫舍
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃...原创 2019-04-15 15:32:39 · 108 阅读 · 0 评论 -
LeetCode 213. 打家劫舍 II
你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例1:输入: [2,3,2]输出: 3解释:...原创 2019-04-23 17:54:14 · 139 阅读 · 0 评论 -
LeetCode 62. 不同路径
一个机器人位于一个m x n网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?说明:m和n的值均不超过 100。示例1:输入: m = 3, n = 2输出: 3解释:...原创 2019-04-19 15:01:36 · 115 阅读 · 0 评论 -
POJ 1088 滑雪
AC代码:原创 2019-09-07 14:40:35 · 123 阅读 · 0 评论