本文主要是介绍小山菌_代码随想录算法训练营第二十八天| 491.递增子序列 、,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
491.递增子序列
文档讲解:代码随想录.递增子序列
视频讲解:回溯算法精讲,树层去重与树枝去重 | LeetCode:491.递增子序列
状态:已完成
代码实现
class Solution {
private:vector<vector<int>> result;vector<int> path;void backtracking(vector<int>& nums, int startIndex) {if (path.size() > 1) {result.push_back(path);}int used[201] = {0}; // 这里使用数组来进行去重操作,题目说数值范围[-100, 100]for (int i = startIndex; i < nums.size(); i++) {if ((!path.empty() && nums[i] < path.back())|| used[nums[i] + 100] == 1) {continue;}used[nums[i] + 100] = 1; // 记录这个元素在本层用过了,本层后面不能再用了path.push_back(nums[i]);backtracking(nums, i + 1);path.pop_back();}}
public:vector<vector<int>> findSubsequences(vector<int>& nums) {result.clear();path.clear();backtracking(nums, 0);return result;}
};
心得体会
1.这两天工作比较忙,先占坑
这篇关于小山菌_代码随想录算法训练营第二十八天| 491.递增子序列 、的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!