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

玫琳凯网站建设与推广方案高性能网站建设进阶...

玫琳凯网站建设与推广方案,高性能网站建设进阶...,职业培训学校,手把手教你制作网页题目(leecode T46): 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 方法:全排列是数学中的基础问题,也是回溯算法能解决的经典问题。全排列因为每个元素都会…

题目(leecode T46):

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

方法:全排列是数学中的基础问题,也是回溯算法能解决的经典问题。全排列因为每个元素都会用到,所以不需要startIndex来控制递归的位置,但由于每个元素只能使用一次而不重复,所以需要使用used数组来表示当前元素是否被使用过了,使用过的话就跳过当前递归。分析三部曲:

1:传入参数与返回值:传入nums数组与使用数组used

2:终止条件:全排列要求每个元素都用到了,因此当path中收集的元素长度达到了nums.size时就可以收集结果并返回了

3:单层处理逻辑:单层中只需要判断一下当前的nums[i]是否是被使用过的,如果是的话就直接退出当前递归,否则的话就递归。同时记得在处理nums[i]元素时更新used数组的使用情况。

题解:

class Solution {
private:vector<int> path;vector<vector<int>> result;void backtracking(vector<int>& nums, vector<bool>& used){if(path.size() == nums.size()){                 //终止条件result.push_back(path);return;}for(int i = 0; i < nums.size(); i++){        //因为每个元素都要用到,无需startIndexif(used[i] == true) continue;path.push_back(nums[i]);used[i] = true;                          //注意及时更新used数组 backtracking(nums, used);path.pop_back();used[i] = false;}}
public:vector<vector<int>> permute(vector<int>& nums) {path.clear();result.clear();vector<bool> used(nums.size(), false);       //used数组刚开始默认是全false的backtracking(nums, used);return result;}
};
http://www.yayakq.cn/news/812306/

相关文章:

  • 网站制作公司兴田德润怎么联系团员个人信息查询官网
  • php做网站毕设答辩问什么seo伪原创工具
  • 实验室网站建设网站后台费用
  • wordpress仪表盘404哈尔滨网站优化技术
  • 怎么下学做衣服网站广东建筑人才网
  • 网站框架是怎么做的长沙网站建设icp备
  • 有了域名怎么做自己得网站网站建设有何好处
  • 全网营销网站建设临沂建设规划局网站
  • 网站是怎么做长沙网站优化体验
  • 郴州文明网网站磁力蜘蛛种子搜索
  • 网站客户评价太原百度关键词搜索
  • 淘宝客代理网站怎么做个人做外贸怎么做
  • 能够做渗透的网站wordpress 无法保存
  • 网站开发课程设计参考文献莆田有建设网站的公司码
  • 移动端网站建设 新闻动态wordpress官方主题
  • 网站设计英文翻译辽宁省建设信息网
  • 大城县建设局网站深圳家具网站建设
  • 网站建设有关图片qq飞车哪个公司开发的
  • 宁夏建设厅网站公示确实网站的建设目标
  • 建设网站盈利2015黄冈做网站价格
  • 中国建设银行青海分行网站唐山做企业网站的公司
  • 凡科网站手机投票怎么做码制作官网
  • 网站定制 天津泉州seo计费管理
  • 注册网站后邮箱收到邮件旅游网站建设分析
  • 建设模板网站wordpress 发邮件设置
  • 网站优化前景手机做wifi中继上外国网站
  • 哪个公司做网站建设好我的主页
  • 查重网站开发建设网站的申请
  • 网站四对联广告代码网站的优化
  • 网站的建设意义百度top排行榜