class Solution {
public:
vector<vector<int>> findSubsequences(vector<int>& nums) {
vector<vector<int>> ans;
vector<map<int,int>> mp;
ans.push_back({});
mp.push_back(map<int,int>{{}});
int N = nums.size();
for(int i=0;i<N;i++){
int M = ans.size();
for(int j=0;j<M;j++){
if(mp[j][nums[i]] == 0){
if(ans[j].size() == 0 || (ans[j].size() > 0 && nums[i] >= ans[j][ans[j].size()-1])){
mp[j][nums[i]] = 1;
ans.push_back(ans[j]);
ans[ans.size()-1].push_back(nums[i]);
mp.push_back(map<int,int>{{}});
}
}
}
}
vector<vector<int>> res;
for(int i=0;i<ans.size();i++){
if(ans[i].size() > 1) res.push_back(ans[i]);
}
return res;
}
};
No.84 - LeetCode491 - 找所有上升子序列 - 有点麻烦
最新推荐文章于 2024-03-22 16:30:03 发布