哈尔滨做网站找哪家好,公关公司有哪些职位,多元 集团 网站建设方案,外链工具xg下载一、最长递增子序列
题目一#xff1a;300. 最长递增子序列
300. 最长递增子序列 给你一个整数数组 nums #xff0c;找到其中最长严格递增子序列的长度。
子序列 是由数组派生而来的序列#xff0c;删除#xff08;或不删除#xff09;数…一、最长递增子序列
题目一300. 最长递增子序列
300. 最长递增子序列 给你一个整数数组 nums 找到其中最长严格递增子序列的长度。
子序列 是由数组派生而来的序列删除或不删除数组中的元素而不改变其余元素的顺序。例如[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 dp[i]表示以nums[i]结尾的最长递增子序列的长度。 对于每个元素nums[i]需要找到所有j i且nums[j] nums[i]的dp[j] 然后在这些dp[j]中找到最大值将其加1后作为dp[i]的值 最后数组dp中的最大值即为整个数组的最长递增子序列的长度。 class Solution {
public:int lengthOfLIS(vectorint nums) {if (nums.empty()) return 0;int n nums.size();vectorint dp(n, 1); int maxLength 1;for (int i 1; i n; i) {for (int j 0; j i; j) {if (nums[j] nums[i]) {dp[i] max(dp[i], dp[j] 1);}}maxLength max(maxLength, dp[i]); // 更新最长递增子序列的长度}return maxLength;}
};
二、最长连续递增序列
题目一674. 最长连续递增序列
674. 最长连续递增序列
给定一个未经排序的整数数组找到最长且 连续递增的子序列并返回该序列的长度。
连续递增的子序列 可以由两个下标 l 和 rl r确定如果对于每个 l i r都有 nums[i] nums[i 1] 那么子序列 [nums[l], nums[l 1], ..., nums[r - 1], nums[r]] 就是连续递增子序列。 为了找到最长连续递增序列的长度可以遍历数组使用一个计数器来跟踪当前连续递增序列的长度并使用一个变量来记录到目前为止找到的最长连续递增序列的长度。 每次当发现当前元素大于前一个元素时增加计数器的值 否则将计数器重置为1因为连续递增序列被中断了 /** lc appleetcode.cn id674 langcpp** [674] 最长连续递增序列*/// lc codestart
class Solution {
public:int findLengthOfLCIS(vectorint nums) {if (nums.size() 2) return nums.size();int maxLength 1; int currentLength 1; for (int i 1; i nums.size(); i) {if (nums[i] nums[i-1]) {currentLength;maxLength max(maxLength, currentLength);} else {currentLength 1;}}return maxLength;}
};
// lc codeend
三、最长重复子数组
题目一718. 最长重复子数组
718. 最长重复子数组
给两个整数数组 nums1 和 nums2 返回 两个数组中 公共的 、长度最长的子数组的长度 。 定义一个二维数组dp来解决其中dp[i][j]表示以nums1[i-1]和nums2[j-1]结尾的最长公共子数组的长度。 如果nums1[i-1] nums2[j-1]那么dp[i][j] dp[i-1][j-1] 1 否则dp[i][j] 0 最后需要找到dp数组中的最大值即为两个数组中公共的、长度最长的子数组的长度。 class Solution {
public:int findLength(vectorint nums1, vectorint nums2) {int m nums1.size(), n nums2.size();vectorvectorint dp(m 1, vectorint(n 1, 0));int maxLength 0;for (int i 1; i m; i) {for (int j 1; j n; j) {if (nums1[i - 1] nums2[j - 1]) {dp[i][j] dp[i - 1][j - 1] 1;maxLength max(maxLength, dp[i][j]);}}}return maxLength;}
};