1 #include <iostream> 2 #include <cstdio> 3 #include <memory.h> 4 using namespace std; 5 const int INF=0x3f3f3f3f,city=4; 6 int main(){ 7 int a[city][ ...
分类:
其他好文 时间:
2020-11-19 12:53:22
阅读次数:
10
题目描述 给定两个字符串,求解这两个字符串的最长公共子序列(Longest Common Sequence)。比如字符串1:BDCABA;字符串2:ABCBDAB。则这两个字符串的最长公共子序列长度为4,最长公共子序列是:BCBA。序列无须是连续的,重复即可。 解题思路 暴力遍历 动态规划 暴力遍历 ...
分类:
其他好文 时间:
2020-11-16 13:50:06
阅读次数:
9
本组囊括数组相关题目,且只包括两道有关杨辉三角的问题。 118. Pascal's Triangle 题目描述:简单 首先要知道杨辉三角:每个数等于它左上方和右上方两数之和,那么如果能够知道一行杨辉三角,我们就可以根据每对相邻的值轻松地计算出它的下一行。类似这种迭代的思想,官方也把它归到动态规划的思 ...
分类:
编程语言 时间:
2020-11-16 13:13:24
阅读次数:
10
1.动态规划的概念及理解 动态规划(Dynamic Programming,DP)是运筹学的一个分支,是求解决策过程最优化的过程。我的个人理解如下:将一个复杂的大问题拆分成若干个小问题并求出这些小问题的解,记录下来。最后借由这些小问题的解推导出原始大问题的答案。 2.示例 2.1 上台阶 共十级台阶 ...
分类:
其他好文 时间:
2020-11-16 12:57:23
阅读次数:
8
思路 比较明显的动态规划问题。状态转移方程为:f(x, y) = grid(x,y) + max {f(x-1,y), f(x, y-1)} 。 优化:这里不使用额外的数组f,而就地更改grid数组,可以将空间复杂度降为O(1)。 1 class Solution { 2 public: 3 int ...
分类:
其他好文 时间:
2020-11-13 13:08:20
阅读次数:
7
一、分割类问题 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。 示例 1: 输入: n = 12 输出: 3 解释: 12 = 4 + 4 + 4. 示例 2: 输入: n = 13 输出: 2 解释: 13 ...
分类:
其他好文 时间:
2020-11-12 13:24:07
阅读次数:
8
#1:在数组中找两个数,使其和为target 链接:https://leetcode-cn.com/problems/two-sum/ 暴力就是n^2,可以用map来做,这里介绍一下map.count(tmp)函数,是搜索key的值,map里存在值为tmp的key就返回1,否则是0 #122:给定一 ...
分类:
其他好文 时间:
2020-11-08 17:59:16
阅读次数:
25
问题描述 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 解法一(动态规划): 用dp[i]表示第i位结尾 ...
分类:
其他好文 时间:
2020-11-08 17:06:45
阅读次数:
22
###题目 509. Fibonacci Number ###解题方法 当成动态规划题来做,设置一个数组存储每轮计算后的fib数,从2开始遍历到N+1,然后返回最后一位即可。 ###代码 class Solution: def fib(self, N: int) -> int: if not N: ...
分类:
其他好文 时间:
2020-11-08 16:42:43
阅读次数:
18
\(A.\) 首先有个朴素的动态规划思路 , 记 \(f_{i , j}\) 表示前 \(i\) 个位置 , 最后一个位置的颜色是 \(j\) 的方案数。 转移要用到容斥原理 , 用总方案数减去 \(j\) 连续出现 \(a_{j} + 1\) 次的方案数。 记 \(g_{i} = \sum{f_{ ...
分类:
其他好文 时间:
2020-11-07 17:32:03
阅读次数:
20