动态规划算法10
LeetCode 300 最长递增子序列 2023.12.15
- 题目链接
- 代码随想录讲解[链接]
int lengthOfLIS(vector<int>& nums) {int result = 1;vector<int> dp(nums.size(), 1);for (int i = 1; i < nums.size(); i++){for (int j = 0; j < i; j++){if(nums[j] < nums[i])dp[i] = max(dp[j] + 1, dp[i]);}if(result < dp[i])result = dp[i];}return result;
}
LeetCode 674 最长连续递增序列 2023.12.15
- 题目链接
- 代码随想录讲解[链接]
int findLengthOfLCIS(vector<int>& nums) {int result = 1;vector<int> dp(nums.size(), 1);for (int i = 1; i < nums.size(); i++){if(nums[i] > nums[i-1])dp[i] = dp[i-1] + 1;if(result < dp[i])result = dp[i];}return result;
}
LeetCode 718 最长重复子数组 2023.12.15
- 题目链接
- 代码随想录讲解[链接]
int findLength(vector<int>& nums1, vector<int>& nums2) {int result = 0;vector<vector<int>> dp(nums1.size()+1, vector<int>(nums2.size()+1, 0));for (int i = 1; i <= nums1.size(); i++){for(int j = 1; j <= nums2.size(); j++){if(nums1[i-1] == nums2[j-1])dp[i][j] = dp[i-1][j-1] + 1;if(result < dp[i][j])result = dp[i][j];}}return result;
}