子序列问题

1.

class Solution {

public:

int lengthOfLIS(vector<int>& nums) {

int n=nums.size();

vector<int> ret(n,1);

ret[0]=1;

int a=1;

for(int i=1;i<n;i++){

for(int j=0;j<i;j++){

if(nums[i]>nums[j]) ret[i]=max(ret[j]+1,ret[i]);

a=max(a,ret[i]);

}

};

return a;

}

};

2.

class Solution {

public:

int wiggleMaxLength(vector<int>& nums) {

int n=nums.size();

vector<int> f(n,1);

auto g=f;

int ret=1;

for(int i=1;i<n;i++){

for(int j=0;j<i;j++){

if(nums[i]>nums[j]) f[i]=max(g[j]+1,f[i]);

else if(nums[i]<nums[j]) g[i]=max(f[j]+1,g[i]);

}

ret=max(ret,max(f[i],g[i]));

}

return ret;

}

};

class Solution {

public:

int findLongestChain(vector<vector<int>>& pairs) {

sort(pairs.begin(),pairs.end());

int n=pairs.size();

vector<int> ret(n,1);

int r=1;

for(int i=1;i<n;i++){

for(int j=0;j<i;j++){

if(pairs[j][1]<pairs[i][0]) ret[i]=max(ret[i],ret[j]+1);

}

r=max(r,ret[i]);

}

return r;

}

};

4.

\

class Solution {

public:

int longestSubsequence(vector<int>& arr, int difference) {

unordered_map<int,int> ret;

ret[arr[0]]=1;

int sum=1;

for(int i=1;i<arr.size();i++){

ret[arr[i]]=ret[arr[i]-difference]+1;

sum=max(sum,ret[arr[i]]);

}

return sum;

}

};

5.

class Solution {

public:

int lenLongestFibSubseq(vector<int>& arr) {

int n=arr.size();

unordered_map<int,int> hash;

for(int i=0;i<n;i++) hash[arr[i]]=i;

vector<vector<int>> dp(n,vector<int>(n,2));

int ret=2;

for(int j=2;j<n;j++){

for(int i=1;j>i;i++){

int a=arr[j]-arr[i];

if(a<arr[i]&&hash.count(a)) dp[i][j]=dp[hash[a]][i]+1;

ret=max(ret,dp[i][j]);

}

}

return ret>=3?ret:0;

}

};

相关推荐
郝学胜-神的一滴7 分钟前
深度学习优化核心:梯度下降与网络训练全解析
数据结构·人工智能·python·深度学习·算法·机器学习
Je1lyfish33 分钟前
CMU15-445 (2025 Fall/2026 Spring) Project#3 - QueryExecution
linux·c语言·开发语言·数据结构·数据库·c++·算法
许彰午35 分钟前
03-二叉树——从递归遍历到非递归实现
java·算法
Brilliantwxx1 小时前
【C++】 vector(代码实现+坑点讲解)
开发语言·c++·笔记·算法
NorburyL3 小时前
DPO笔记
深度学习·算法
老纪的技术唠嗑局3 小时前
深度解析 LLM Wiki / Obsidian-Wiki / GBrain:Agent 时代知识的“自组织”与“自进化”
大数据·数据库·人工智能·算法
YXXY3136 小时前
模拟算法的介绍
算法
happymaker06266 小时前
简单LRU的实现(基于LinkedHashMap)
算法·leetcode·lru
会编程的土豆6 小时前
【数据结构与算法】空间复杂度从入门到面试:不仅会算,还要会解释
数据结构·c++·算法·面试·职场和发展
普通网友6 小时前
《算法面试必刷:15 个高频 LeetCode 题(附代码)》
算法·leetcode·面试