![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
左程云书-dp章节
seeInfinite
这个作者很懒,什么都没留下…
展开
-
logN时间复杂度的斐波那契数列
引入矩阵幂次乘法class Solution {public: int fib(int n) { if(n < 1) return 0; if(n < 3) return 1; vector<vector<int>> begin{{1,1}}; vector<vector...原创 2019-09-17 16:08:33 · 433 阅读 · 0 评论 -
leetcode64 最小路径和
题目:给定一个包含非负整数的 mxn网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[[1,3,1], [1,5,1], [4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。思路:经典dp,非常简单class Solution {public...原创 2019-09-17 15:35:29 · 75 阅读 · 0 评论 -
换钱的最少货币数
https://www.nowcoder.com/practice/4e05294fc5aa4d4fa8eacef2e606e5a8?tpId=101&tqId=33080&tPage=1&rp=1&ru=/ta/programmer-code-interview-guide&qru=/ta/programmer-code-interview-guide...原创 2019-09-17 16:59:45 · 229 阅读 · 0 评论 -
机器人达到指定位置的方法数(hard)
思路dp[i][j]:走i步,到j位置的方案数量dp[i][j] = dp[i-1][j-1]+dp[i-1][j+1]每个位置方案数,都等于上个时刻左右两边方案数,注意n+2和0的位置的padding,可以处理边界情况#include <iostream>#include <vector>using namespace std;//...原创 2019-09-17 18:49:35 · 657 阅读 · 0 评论 -
换钱的方法数(hard,主要怎样去重)
思路1:空间压缩的dpdp[i]:表示换 i 的钱的方案数量这里注意去重,如2,3,5,换5的钱 0 1 2 3 4 5以2为起始 1 0 1 0 2 0以3为起始 1 0 1 12 1以5为起始 1 0 1 12 2故换5的钱一共2种方法:即2+3和5这里通过这样的顺序限定,使得2,3和3,2不会重复,因为必...原创 2019-09-17 23:32:35 · 103 阅读 · 0 评论 -
leetcode312 戳气球(hard)
题目有 n 个气球,编号为0 到 n-1,每个气球上都标有一个数字,这些数字存在数组nums中。现在要求你戳破所有的气球。每当你戳破一个气球 i 时,你可以获得nums[left] * nums[i] * nums[right]个硬币。这里的left和right代表和i相邻的两个气球的序号。注意当你戳破了气球 i 后,气球left和气球right就变成了相邻的...原创 2019-09-18 15:29:47 · 228 阅读 · 0 评论 -
leetcode354 俄罗斯套娃信封问题(二维的最长上升子序列)
给定一些标记了宽度和高度的信封,宽度和高度以整数对形式(w, h)出现。当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样。请计算最多能有多少个信封能组成一组“俄罗斯套娃”信封(即可以把一个信封放到另一个信封里面)。说明:不允许旋转信封。示例:输入: envelopes = [[5,4],[6,4],[6,7],[2,3]]输出...原创 2019-09-18 16:46:07 · 250 阅读 · 0 评论 -
leetcode486 预测赢家(排成一条线的纸牌博弈问题)
思路1:暴力递归法会超时#include <iostream>#include <vector>using namespace std;class Solution{public: // 为先手时 int first(int l,int r,vector<int> &nums){ // 只有一...原创 2019-09-18 20:49:16 · 437 阅读 · 0 评论