动态规划dp
每天学一点!
时刻保持对知识的热情!
展开
-
494.目标和
题目描述给定一个非负整数数组,a1, a2, ..., an, 和一个目标数,S。现在你有两个符号 + 和 -。对于数组中的任意一个整数,你都可以从 + 或 -中选择一个符号添加在前面。返回可以使最终数组和为目标数 S 的所有添加符号的方法数。示例输入: nums: [1, 1, 1, 1, 1], S: 3 输出: 5 解释:-1+1+1+1+1 = 3+1-1+...原创 2019-12-02 16:09:58 · 175 阅读 · 0 评论 -
221. 最大正方形
题目描述在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。示例输入: 1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0输出: 4思路动态规划。(1)状态方程dp(i)(j)表示右下角下标为(i,j)时的最大正方形边长。当遇到0时,dp[i][j] = 0,肯定不能构成正方形;当遇到1时,有...原创 2019-11-28 10:16:12 · 117 阅读 · 0 评论 -
198. 打家劫舍
题目描述你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (...原创 2019-11-27 17:44:01 · 99 阅读 · 0 评论 -
【HDU】2602 Bone Collector
Problem DescriptionMany years ago , in Teddy’s hometown there was a man who was called “Bone Collector”. This man like to collect varies of bones , such as dog’s , cow’s , also he went to the grave ...原创 2019-09-09 16:00:17 · 138 阅读 · 0 评论 -
96. 不同的二叉搜索树
题目描述给定一个整数 n,求以1 ...n为节点组成的二叉搜索树有多少种?示例示例:输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2 1 ...原创 2019-09-06 21:09:48 · 105 阅读 · 0 评论 -
5. 最长回文子串
题目描述给定一个字符串s,找到s中最长的回文子串。你可以假设s的最大长度为 1000。示例示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"思路1结合回文数的特性,运用中心扩散的方法,遍历。如 “ababb”,回文字符串记为str, 长度记...原创 2019-01-25 19:59:49 · 164 阅读 · 0 评论 -
91. 解码方法
题目描述一条包含字母A-Z 的消息通过以下方式进行了编码:'A' -> 1'B' -> 2...'Z' -> 26给定一个只包含数字的非空字符串,请计算解码方法的总数。示例 1:输入: "12"输出: 2解释:它可以解码为 "AB"(1 2)或者 "L"(12)。示例2:输入: "226"输出: 3解释:它可以解码为 "BZ" (2...原创 2019-07-17 08:48:40 · 253 阅读 · 0 评论 -
70. 爬楼梯
题目描述假设你正在爬楼梯。需要 n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2....原创 2019-07-16 18:23:36 · 122 阅读 · 0 评论 -
(LeetCode每日一刷72)64. 最小路径和
题目描述给定一个包含非负整数的 mxn网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[[1,3,1], [1,5,1], [4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。思路动态规划四部曲:(1)确定状态,最后一步的前一步是走到(m-1, ...原创 2019-07-16 14:12:34 · 146 阅读 · 0 评论 -
矩形覆盖
题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?思路动态规划。代码class Solution {public: int rectCover(int number) { if (number < 1) return 0;...原创 2019-02-26 15:38:41 · 120 阅读 · 0 评论 -
变态跳台阶
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路1数学方法按照题意可得:F(n) = F(n-1) + F(n-2) + F(n-3) + ... + F(2) + F(1) + F(0),而F(n-1) = F(n-2) + F(n-3) + ... + F(2) + F(1) + F(0)...原创 2019-02-26 15:20:28 · 112 阅读 · 0 评论 -
跳台阶
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。思路动态规划四部曲:(1)确定状态:设f(n)为跳n阶台阶的方法总数,则最后一跳可以为1或者2,也就是最后一跳有两种方式,即f(n) = f(n-1)+f(n-2)(2)初始状态:f[1] = 1, f[2] = 2; // 因为f[0]肯定为...原创 2019-02-26 14:39:36 · 127 阅读 · 0 评论 -
斐波那契数列
题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39思路递归四部曲:(1)状态方程:f(n) = f(n-1) + f(n-2)(2)初始状态:f[0] = 0, f[1] = 1(3)边界条件:这题没有(4)计算顺序:从小到大代码class Solution {publi...原创 2019-02-26 14:16:43 · 151 阅读 · 0 评论 -
322. 零钱兑换
题目描述给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回-1。示例1:输入: coins = [1, 2, 5], amount = 11输出: 3解释: 11 = 5 + 5 + 1示例 2:输入: coins = [2], amount = 3输出: -1...原创 2019-07-15 21:17:54 · 111 阅读 · 0 评论 -
(LeetCode每日一刷70)62. 不同路径
题目描述一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?说明:m和n的值均不超过 100。示例1:输入: m = 3, n = 2...原创 2019-07-16 08:25:22 · 148 阅读 · 0 评论 -
(LeetCode每日一刷71)63. 不同路径 II
题目描述一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。说明:m和 n 的值均不超过 100。示例1:输...原创 2019-07-16 10:08:04 · 668 阅读 · 0 评论