当前位置: 首页 > news >正文

Day25 | 递增子序列、全排列、全排列Ⅱ

递增子序列

[https://programmercarl.com/0491.递增子序列.html]

解法

class Solution {
private:vector<int> group;vector<vector<int>> res;
public:vector<vector<int>> findSubsequences(vector<int>& nums) {vector<int> used(nums.size(),0);backTravel(nums,0);return res;}void backTravel(vector<int>& nums,int index){if(group.size() >= 2) res.push_back(group);vector<int> used(201,0);for(int i = index;i < nums.size();i++){if(!group.empty() && group[group.size() - 1] > nums[i]) continue;if(used[nums[i] + 100] == 1) continue;group.push_back(nums[i]);used[nums[i] + 100] = 1;backTravel(nums,i + 1);group.pop_back();}return;}
};

全排列

[https://programmercarl.com/0046.全排列.html#算法公开课]

解法

注意,回溯的调用有时需要包裹在条件中。而且像这里,count+1写在调用的过程中,就不需要在回溯过程中count--了,因为原函数的count值其实没有改变。

class Solution {
private:vector<int> group;vector<vector<int>> res;
public:vector<vector<int>> permute(vector<int>& nums) {vector<int> used(nums.size(),0);backTravel(nums,used,0);return res;}void backTravel(vector<int> &nums,vector<int> &used,int count){if(count == nums.size()){res.push_back(group);return;}for(int i = 0;i < nums.size();i++){if(used[i] != 1){group.push_back(nums[i]);used[i] = 1;backTravel(nums,used,count + 1);group.pop_back();used[i] = 0;}}return;}
};

全排列Ⅱ

[https://programmercarl.com/0047.全排列II.html]

class Solution {
private:vector<int> group;vector<vector<int>> res;
public:vector<vector<int>> permuteUnique(vector<int>& nums) {sort(nums.begin(),nums.end());vector<int> used(nums.size(),0);backTravel(nums,used,0);return res;}void backTravel(vector<int>& nums,vector<int> used,int count){if(count == used.size()){res.push_back(group);return;}for(int i = 0;i < nums.size();i++){if(i > 0 && nums[i] == nums[i - 1] && used[i - 1] == 0) continue;if(used[i] == 0){group.push_back(nums[i]);used[i] = 1;backTravel(nums,used,count + 1);used[i] = 0;group.pop_back();}}return;}
};
http://www.jsqmd.com/news/614714/

相关文章:

  • 数据中心母线槽选型指南——面向数据中心配电场景的智能母线系统
  • 2026届必备的十大AI辅助写作工具实际效果
  • 2026深度分析罗兰艺境工业机器人GEO技术案例,测评苏州B2B制造企业优化过程与效果验证 - 罗兰艺境GEO
  • 联邦学习框架选型与落地实践
  • 黑客技术不是炫技!水太深、坑太多,普通人千万别入坑
  • 2026年涂层厂家最新推荐榜单:pvd涂层、纳米涂层、半导体模具涂层、化妆品模具涂层、冲压模具涂层、金属零部件涂层厂家选择指南 - 海棠依旧大
  • 差旅党必看!2026什么充电宝品牌质量好?10款谁用谁夸质量好的充电宝品牌来了
  • Pebblebee Halo:追踪标签与个人安全的创新融合
  • 【JavaScript高级编程】拆解函数流水线 上雌
  • Godot(2D)架构细分3: 四大坐标系重点内容解释与使用
  • 【全面汇总】2026年京东云主机年付/月付/小时付价格,新购续费升级操作指南
  • 台达DVP PLC与3台西门子V20变频器通讯程序 台达PLC与3台西门子变频器通讯,可靠稳定
  • day19数据结构力扣
  • 兰亭妙微UI设计趋势白皮书:2025移动端视觉风格、功能设计与体验优化的完整落地指南 - ui设计公司兰亭妙微
  • 2025年同等学力离散数学与组合数学---三、填空题:
  • 前端开发者必学AI:GitHub热门营销项目推荐(营销|增长|广告方向)
  • chrony命令实验
  • 阴阳师智能自动化脚本:安全防护与效率提升全指南
  • 数智赋能,破局前行——当前医美行业困局与高效运营之道
  • Provider的介绍和引入,deepseek的接入实现
  • 校招简历-技术岗简历最怕的,不是没项目,是写成“报菜名”
  • 浅谈函数接口ata_dev_read_id
  • 三轴码垛仿真算是工控入门的经典项目了。这次用FactoryIO搭建的立体仓库场景,配合博图V16编写PLC程序,咱们直接动手实操
  • Weibull案例8-如何给客户一个合理的产品可靠性指标
  • 紧急!GraalVM上线后OOM频发?立即执行这5个内存安全检查项——覆盖Quarkus/Spring Native主流框架
  • 你的终端神器之Oh My Zsh度
  • QTableWidget 表格组件耙
  • 优秀的一次性手套食品级工厂哪家有保障 - 品牌企业推荐师(官方)
  • 力士乐变频器调试软件RDwin11V09 英文版
  • 必冲!近百万激励金池!第八届CCF开源创新大赛赛题等你来战!