动态规划
我很忙2010
咩
展开
-
LeetCode 576. 出界的路径数(C++、java、python)
给定一个m × n的网格和一个球。球的起始坐标为(i,j),你可以将球移到相邻的单元格内,或者往上、下、左、右四个方向上移动使球穿过网格边界。但是,你最多可以移动N次。找出可以将球移出边界的路径数量。答案可能非常大,返回 结果 mod 109+ 7 的值。示例 1:输入: m = 2, n = 2, N = 2, i = 0, j = 0输出: 6解释:示例...原创 2018-12-24 20:16:42 · 363 阅读 · 0 评论 -
LeetCode 583. 两个字符串的删除操作(C++、python)
给定两个单词word1和word2,找到使得word1和word2相同所需的最小步数,每步可以删除任意一个字符串中的一个字符。示例 1:输入: "sea", "eat"输出: 2解释: 第一步将"sea"变为"ea",第二步将"eat"变为"ea"说明:给定单词的长度不超过500。给定单词中的字符只含有小写字母。C++class Solution...原创 2019-01-20 15:45:47 · 494 阅读 · 0 评论 -
牛客网——跳台阶(C++)
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。C++class Solution {public: int jumpFloor(int number) { if(0==number) { return 1; } ...原创 2020-01-18 13:19:15 · 127 阅读 · 0 评论 -
牛客网——矩形覆盖(C++)
我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?class Solution {public: int rectCover(int number) { if(1==number) { return 1; } ...原创 2020-01-14 23:32:42 · 286 阅读 · 0 评论 -
leetcode 1314. 矩阵区域和(C++)
给你一个m * n的矩阵mat和一个整数K,请你返回一个矩阵answer,其中每个answer[i][j]是所有满足下述条件的元素mat[r][c]的和:i - K <= r <= i + K, j - K <= c <= j + K (r, c)在矩阵内。示例 1:输入:mat = [[1,2,3],[4,5,6],[7,...原创 2020-01-11 23:57:46 · 335 阅读 · 0 评论 -
leetcode 1277. 统计全为 1 的正方形子矩阵(C++)
给你一个m * n的矩阵,矩阵中的元素不是0就是1,请你统计并返回其中完全由1组成的正方形子矩阵的个数。示例 1:输入:matrix =[ [0,1,1,1], [1,1,1,1], [0,1,1,1]]输出:15解释: 边长为 1 的正方形有 10 个。边长为 2 的正方形有 4 个。边长为 3 的正方形有 1 个。正方形的总数 = ...原创 2019-12-01 11:48:52 · 798 阅读 · 0 评论 -
leetcode 1269. 停在原地的方案数(C++)
有一个长度为arrLen的数组,开始有一个指针在索引0处。每一步操作中,你可以将指针向左或向右移动 1 步,或者停在原地(指针不能被移动到数组范围外)。给你两个整数steps和arrLen,请你计算并返回:在恰好执行steps次操作以后,指针仍然指向索引0处的方案数。由于答案可能会很大,请返回方案数模10^9 + 7后的结果。示例 1:输入...原创 2019-11-24 15:21:43 · 282 阅读 · 0 评论 -
leetcode 1230. 抛掷硬币(C++)
有一些不规则的硬币。在这些硬币中,prob[i]表示第i枚硬币正面朝上的概率。请对每一枚硬币抛掷一次,然后返回正面朝上的硬币数等于target的概率。示例 1:输入:prob = [0.4], target = 1输出:0.40000示例 2:输入:prob = [0.5,0.5,0.5,0.5,0.5], target = 0输出:0.03125...原创 2019-10-20 01:25:06 · 715 阅读 · 0 评论 -
LeetCode 746. 使用最小花费爬楼梯(C++、python)
数组的每个索引做为一个阶梯,第i个阶梯对应着一个非负数的体力花费值cost[i](索引从0开始)。每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。示例1:输入: cost = [10, 15, 20]输出: 15解释: 最低花费是从c...原创 2018-10-08 19:19:25 · 628 阅读 · 0 评论 -
LeetCode 152. 乘积最大子序列(C++、python)
给定一个整数数组nums,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。示例 1:输入: [2,3,-2,4]输出: 6解释:子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释:结果不能为 2, 因为 [-2,-1] 不是子数组。C++class Solution {public: int ...原创 2018-09-23 15:42:16 · 1005 阅读 · 0 评论 -
leetcode 1155. 掷骰子的N种方法(C++)
这里有d个一样的骰子,每个骰子上都有f个面,分别标号为1, 2, ..., f。我们约定:掷骰子的得到总点数为各骰子面朝上的数字的总和。如果需要掷出的总点数为target,请你计算出有多少种不同的组合情况(所有的组合情况总共有f^d种),模10^9 + 7后返回。示例 1:输入:d = 1, f = 6, target = 3输出:1示例 2:...原创 2019-08-12 14:51:30 · 614 阅读 · 0 评论 -
leetcode 1135. 最低成本联通所有城市(C++)
想象一下你是个城市基建规划者,地图上有N座城市,它们按以1到N的次序编号。给你一些可连接的选项conections,其中每个选项conections[i] = [city1, city2, cost]表示将城市city1和城市city2连接所要的成本。(连接是双向的,也就是说城市city1和城市city2相连也同样意味着城市city2和城市city1相...原创 2019-07-28 15:20:01 · 3149 阅读 · 0 评论 -
leetcode 1027. 最长等差数列(C++、python)
给定一个整数数组A,返回A中最长等差子序列的长度。回想一下,A的子序列是列表A[i_1], A[i_2], ..., A[i_k]其中0 <= i_1 < i_2 < ... < i_k <= A.length - 1。并且如果B[i+1] - B[i](0 <= i < B.length - 1) 的值都相同,那么序列B是等差的...原创 2019-07-18 13:05:13 · 2595 阅读 · 1 评论 -
LeetCode 139. 单词拆分(C++)
给定一个非空字符串s和一个包含非空单词列表的字典wordDict,判定s是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。示例 1:输入: s = "leetcode", wordDict = ["leet", "code"]输出: true解释: 返回 true 因为 "leetcode" 可...原创 2019-05-08 21:41:51 · 284 阅读 · 0 评论 -
LeetCode 1035. 不相交的线(C++、python)
我们在两条独立的水平线上按给定的顺序写下A和B中的整数。现在,我们可以绘制一些连接两个数字A[i]和B[j]的直线,只要A[i] == B[j],且我们绘制的直线不与任何其他连线(非水平线)相交。以这种方法绘制线条,并返回我们可以绘制的最大连线数。示例 1:输入:A = [1,4,2], B = [1,2,4]输出:2解释:我们可以画出两条不交叉...原创 2019-05-05 17:45:54 · 879 阅读 · 0 评论