力扣-回溯-491 非递减子序列

思路

重点是在树枝去重的时候不能使用之前的used去重了,原因是题目中不允许对序列进行排序,只有排序后才能把相同数字放一起,才能用used数组完成去重

代码

cpp 复制代码
class Solution {
public:
    vector<int> path;
    vector<vector<int>> result;
    void backtracking(vector<int> nums, int startIndex){
        if(path.size() >= 2){
            result.push_back(path);
        }

        unordered_set<int> uset;
        for(int i = startIndex; i < nums.size(); i++){
            if(path.size() > 0 && path[ path.size() - 1] > nums[i]) continue;
            if(uset.find(nums[i]) != uset.end()) continue;
            uset.insert(nums[i]);
            path.push_back(nums[i]);
            backtracking(nums, i+1);
            path.pop_back();
        }

        return;
    }
    vector<vector<int>> findSubsequences(vector<int>& nums) {
        path.clear();
        result.clear();
        backtracking(nums, 0);
        return result;
    }
};
相关推荐
仰泳的熊猫18 小时前
LeetCode:496. 下一个更大元素 I
数据结构·c++·算法·leetcode
未知陨落19 小时前
LeetCode:78.跳跃游戏
算法·leetcode
Wenhao.19 小时前
LeetCode-Hot100 最小栈实现
算法·leetcode
闲人编程19 小时前
会议安排问题之贪心算法
python·算法·ios·贪心算法·会议问题·算法改进·codecapsule
叫我詹躲躲19 小时前
🚀 震撼!10道DFS&BFS神级题目让你的算法能力飙升300%
前端·leetcode
Jiezcode20 小时前
LeetCode 48. 旋转图像
c++·算法·leetcode·职场和发展
Greedy Alg20 小时前
LeetCode 230. 二叉搜索树中第 K 小的元素
算法·leetcode·职场和发展
rannn_11120 小时前
【LeetCode hot100|Week4】链表
后端·算法·leetcode·链表
种自己的花呀20 小时前
LeetCode 53 最大子数字和(动态规划)
算法·leetcode·动态规划
Craaaayon20 小时前
【数据结构】二叉树-图解深度优先搜索(递归法、迭代法)
java·数据结构·后端·算法·leetcode·深度优先