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

46. Permutations和47. Permutations II

目录

46. Permutations

方法一、使用used数组回溯

方法二、不使用used数组回溯

47. Permutations II

回溯法


46. Permutations

方法一、使用used数组回溯

class Solution {vector<vector<int>> res;vector<int> apermutation;
public:vector<vector<int>> permute(vector<int>& nums) {vector<int> used(nums.size(),false);backtracking(nums,used);return res;}void backtracking(vector<int>& nums,vector<int> &used){if(apermutation.size() == nums.size()){res.push_back(apermutation);return;}for(int i = 0;i < nums.size();i++){if(used[i])continue;apermutation.push_back(nums[i]);used[i] = true;backtracking(nums,used);apermutation.pop_back();used[i] = false;}}
};

方法二、不使用used数组回溯

class Solution {vector<vector<int>> res;
public:vector<vector<int>> permute(vector<int>& nums) {backtracking(nums,0);return res;}void backtracking(vector<int>& nums,int start){if(start == nums.size()){res.push_back(nums);return;}for(int i = start;i < nums.size();i++){swap(nums[i],nums[start]);backtracking(nums,start+1);swap(nums[i],nums[start]);}}
};

47. Permutations II

回溯法

class Solution {vector<vector<int>> res;vector<int> apermutaion;
public:vector<vector<int>> permuteUnique(vector<int>& nums) {sort(nums.begin(),nums.end());vector<bool> used(nums.size(),false);backtracking(nums,used);return res;}void backtracking(vector<int>& nums,vector<bool> &used){if(apermutaion.size() == nums.size()){res.push_back(apermutaion);return;}for(int i = 0;i <nums.size();i++){if(used[i])continue;if(i >0 && nums[i]==nums[i-1] && used[i-1]==false)continue;apermutaion.push_back(nums[i]);used[i] = true;backtracking(nums,used);apermutaion.pop_back();used[i] = false;}}
};
http://www.xdnf.cn/news/716851.html

相关文章:

  • Spring Event(事件驱动机制)
  • 力扣面试150题--二叉树的右视图
  • leetcode hot100刷题日记——27.对称二叉树
  • ubuntu系统上运行jar程序输出时间时区不对
  • C#实现单实例应用程序:确保程序唯一运行实例
  • 算法第32天|509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯
  • 构筑电网“无形防线”: 防外破告警在线监测服务系统
  • 如何批量给局域网内网里的电脑发送信息
  • STM32 HAL库函数学习 GPIO篇
  • 【Redis】RDB和AOF混合使用
  • Java求职面试:从核心技术到AI与大数据的全面考核
  • 网络编程之网络编程预备知识
  • Python对接GPT-4o API接口:聊天与文件上传功能详解
  • 人工智能浪潮下,制造企业如何借力DeepSeek实现数字化转型?
  • cutlass学习教程
  • Security
  • Coze Space的分享体验:基于Y模型分析法的深入剖析
  • 交通违法拍照数据集,可识别接打电话,不系安全带的行为,支持YOLO,COCO JSON,VOC XML格式的标注数据集 最高正确识别率可达88.6%
  • window安装nginx
  • PostgreSQL查询一个表的数据
  • AI预测3D新模型百十个定位预测+胆码预测+去和尾2025年5月29日第92弹
  • N2语法 逆接
  • Python应用while嵌套循环
  • 嵌入式学习笔记 - freeRTOS 阻塞延时的实现机制,同时避免在中断中扫描停留
  • 2025音频传输模块全球选购指南:高品质音频体验的品牌之选
  • 民锋视角下的资产配置策略优化与风险评估模型探索
  • 华为OD机试真题——字母组合过滤组合字符串(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • LangChain【2】之专业术语
  • DTO、VO、DO、BO、PO 的概念与核心区别
  • Swagger 访问不到 报错:o.s.web.servlet.PageNotFound : No mapping for GET /doc.html