动态规划
动态规划
NULL001100
量变引起质变
展开
-
【LeetCode】96. 不同的二叉搜索树 DP
不同的二叉搜索树题目描述解题思路代码题目描述题目链接:96. 不同的二叉搜索树解题思路动态规划。看的官方题解。如果是直接想动态转移方程的话不太容易,但是像题解里面推出式子来就比较好理解了。定义两个函数:G(n): 长度为 n 的序列能构成的不同二叉搜索树的个数。F(i, n): 以 i 为根、序列长度为 n 的不同二叉搜索树个数(1≤i≤n)。代码class Solution {public: int numTrees(int n) { vector&原创 2020-08-24 18:20:30 · 81 阅读 · 0 评论 -
【LeetCode】338. 比特位计数(DP)
比特位计数一级目录二级目录代码一级目录二级目录代码class Solution {public: vector<int> countBits(int num) { vector<int> dp(num+1); dp[0]=0; for(int i=0;i<=num;i++) if(i%2!=0) dp[i]=dp[i-1]+1; else dp[i]=dp[i/2]原创 2020-08-20 23:10:36 · 109 阅读 · 0 评论 -
【LeetCode】300. 最长上升子序列(DP)
最长上升子序列题目描述解题思路代码题目描述给定一个无序的整数数组,找到其中最长上升子序列的长度。(注意:子序列可以不连续,子串要连续)例如:输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。解题思路动态规划。动态规划主要就是要找准状态和状态转移。本题的状态显然可以是上升子序列的最大长度。状态转移就是:首先定位到我所要求的dp[i]位置上,在i之前比较(即j<i) 如果nums[i]>nums[原创 2020-08-20 22:36:27 · 114 阅读 · 0 评论