Steward
分享是一種喜悅、更是一種幸福
程式語言 - LeetCode - C++ - 491. Non-decreasing Subsequences
題目:

解答:
class Solution {
public:
vector<vector<int>> findSubsequences(vector<int>& nums) {
int n = nums.size();
vector<vector<int>> ans;
vector<int> t;
auto dfs = [&](this auto&& dfs, int start) -> void {
if (t.size() >= 2) {
ans.push_back(t);
}
unordered_set<int> used;
for (int i = start; i < n; ++i) {
if (used.count(nums[i])) {
continue;
}
if (!t.empty() && nums[i] < t.back()) {
continue;
}
used.insert(nums[i]);
t.push_back(nums[i]);
dfs(i + 1);
t.pop_back();
}
};
dfs(0);
return ans;
}
};