当前位置: 首页 > 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;}}
};

相关文章:

  • 【高频面试题】数组中的第K个最大元素(堆、快排进阶)
  • 浅谈学习(费曼学习法)
  • shell脚本总结12:自定义函数
  • Flutter GridView网格组件
  • SQL的查询优化
  • 太阳系运行模拟程序-html动画
  • 华为OD机试真题——找终点(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • Cmake编译glog成功并在QT中测试成功步骤
  • Attention Is All You Need论文阅读笔记
  • Flutter下的一点实践
  • 在Mathematica中求解带阻尼的波方程
  • 国内连接速度较快的常用 Yum 源及其具体配置方法
  • DMBOK对比知识点整理(4)
  • 重温经典算法——插入排序
  • 纤维组织效应偏斜如何影响您的高速设计
  • ST MCU CAN模块--TTCAN模式浅析
  • Windows10下搭建sftp服务器(附:详细搭建过程、CMD连接测试、连接失败问题分析解决等)
  • 【大模型MCP】MCP 深度解析:AI 时代的「USB-C」接口——原理、对比、实战代码与行业落地
  • 【HTML-15】HTML表单:构建交互式网页的基石
  • 防范DDoS攻击,服务器稳定性崩溃的根源与高效防御对策
  • 58网站一起做网店/如何做网站建设
  • 视频发布到哪些平台可以赚钱/吉林关键词优化的方法
  • wordpress 设置404页面模板/seo是一种利用搜索引擎的
  • 如何做网站编辑/营销助手下载app下载
  • 淘宝网站的推广方案/百度下载2021新版安装
  • 抽奖网站怎么制作/新产品推广方案策划