当前位置: 首页> 教育> 锐评 > w3school网页制作_临淄最新招聘信息_优化大师官方免费_国外搜索引擎排名

w3school网页制作_临淄最新招聘信息_优化大师官方免费_国外搜索引擎排名

时间:2025/8/23 3:36:07来源:https://blog.csdn.net/weixin_65043441/article/details/143209480 浏览次数:0次
w3school网页制作_临淄最新招聘信息_优化大师官方免费_国外搜索引擎排名

题目描述:

给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。

示例 1:

输入:nums = [1,2,3]
输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

示例 2:

输入:nums = [0,1]
输出:[[0,1],[1,0]]

示例 3:

输入:nums = [1]
输出:[[1]]

提示:

  • 1 <= nums.length <= 6
  • -10 <= nums[i] <= 10
  • nums 中的所有整数 互不相同

题目链接:

. - 力扣(LeetCode)

解题主要思路:

跟 "二叉树所有路径" 那道题差不多,全局变量vector<vector<int>> ret来存储结果,全局变量vetcor<int> path来记录函数调用路径,bool use[7]来记录哪些nums已排列。

当path的长度和nums的长度相等时,说明nums已遍历完,递归结束,将path结果插入到ret中。

解题代码:

class Solution {
public:vector<vector<int>> ret;vector<int> path;bool use[7];vector<vector<int>> permute(vector<int>& nums) {dfs(nums);return ret;}void dfs(vector<int>& nums){// 结束条件if (nums.size() == path.size()) {ret.push_back(path);return;}// dfsfor (int i = 0; i < nums.size(); ++i) {if (use[i] == false) {  // 剪枝path.push_back(nums[i]);use[i] = true;dfs(nums);// 回溯path.pop_back();use[i] = false;}}}
};

关键字:w3school网页制作_临淄最新招聘信息_优化大师官方免费_国外搜索引擎排名

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: