动态规划
🙈动态规划🙈转自:🔥【github】
==========
198.打家劫舍
213.打家劫舍II
337.打家劫舍III
矩阵 (10%)
120.三角形最小路径和
64.最小路径和
62.不同路径
63.不同路径II
序列(40%)
70.爬楼梯
55.跳跃游戏
45.跳跃游戏II
132.分割回文串II
300.最长上升子序列
139.单词拆分
322.零钱兑换
双序列(40%)
1143.最长公共子序列
72.编辑距离
5.最长回文子串
爬楼梯 Leetcode 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
解题思路
到达第n阶台阶有两种方式,一个是在第n-1个台阶处+1阶或在n-2个台阶处+2阶
建立一个dp数组,记录到达每一层时的所有方法总数
所以到达第n个台阶的方法与到底第n-1和n-2个台阶相关,dp[n]=dp[n-1]+dp[n-2]123456789int climbStairs(int n) { vector< ...
动态规划(自刷)
题目列表最大上升子序和
最大子序和
最长回文子串
不同路径
最长回文子序列
正则表达式匹配
最大上升子序列和题目描述一个数的序列bi,当b1 < b2 < … < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, …,aN),我们可以得到一些上升的子序列(ai1, ai2, …, aiK),这里1 <= i1 < i2 < … < iK <= N。比如,对于序列(1, 7, 3, 5, 9, 4, 8),有它的一些上升子序列,如(1, 7), (3, 4, 8)等等。这些子序列中序列和最大为18,为子序列(1, 3, 5, 9)的和. 你的任务,就是对于给定的序列,求出最大上升子序列和。注意,最长的上升子序列的和不一定是最大的,比如序列(100, 1, 2, 3)的最大上升子序列和为100,而最长上升子序列为(1, 2, 3)。
输入描述:12输入包含多组测试数据。每组测试数据由两行组成。第一行是序列的长度N (1 <= N <= 1000)。第二行给出序列中的N个整数,这些整数的取值范围都在0到100 ...