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

网站建设与管理的就业方向凡客诚品是什么平台

网站建设与管理的就业方向,凡客诚品是什么平台,温岭市建设局网站,网站建设与管理培训活动总结穷举 vs 暴搜 vs 深搜 vs 回溯 vs 剪枝 1. 全排列2. 子集 1. 全排列 题目链接:46. 全排列 算法原理: 画出决策树 设计函数 全局变量:二维数组ret存储结果;一维数组path存储路径;boolean类型一维数组visited表示当…

穷举 vs 暴搜 vs 深搜 vs 回溯 vs 剪枝

  • 1. 全排列
  • 2. 子集

1. 全排列

题目链接:46. 全排列

算法原理:

  1. 画出决策树
    在这里插入图片描述

  2. 设计函数

  • 全局变量:二维数组ret存储结果;一维数组path存储路径;boolean类型一维数组visited表示当前节点是否已经被使用
  • 深度优先遍历dfs,当某个节点被使用后,标记为true
  • 剪枝:当某个节点已经被使用过时,该分支剪掉
  • 回溯:visited[i] 回溯为 false,path的最后一个元素删除
  • 递归的出口:当path的大小和nums的大小相等时,将path存入ret中,并返回

实现代码:

class Solution {public List<List<Integer>> ret;public List<Integer> path;boolean[] visited;public List<List<Integer>> permute(int[] nums) {ret = new ArrayList<>();path = new ArrayList<>();visited = new boolean[nums.length];dfs(nums);return ret;}private void dfs(int[] nums) {if(path.size() == nums.length) {//将路径添加进结果中ret.add(new ArrayList<>(path));return;}for(int i = 0; i < nums.length; i++) {//当当前节点未使用时if(!visited[i]) {path.add(nums[i]);//添加当前节点到路径中visited[i] = true;//标记当前节点已经使用dfs(nums);//回溯visited[i] = false;path.remove(path.size() - 1);}}}
}

2. 子集

题目链接:78. 子集

算法流程:
解法一:

  1. 画出决策树:以数组[1, 2, 3]为例,对每个元素分为不选两种操作
    在这里插入图片描述由此可知,决策树的叶子节点就是该数组的子集

  2. 设计代码

  • 全局变量:一维数组path存储所经过的路径,二维数组ret存储所得的结果
  • dfs:函数头dfs(int[] nums, int i),分为选择nums[i]和不选择nums[i],选择nums[i]所需进行的操作为path尾部加入nums[i]。并dfs(nums, i+1);不选择nums[i]所需进行的操作为dfs(nums, i+1)
  • 细节问题:剪枝,回溯,递归出口。这道题不需要剪枝;回溯操作为删除path尾部的元素;递归出口为i == nums.length,将该路径存到ret中,返回

实现代码:

class Solution {public List<Integer> path;public List<List<Integer>> ret;public List<List<Integer>> subsets(int[] nums) {path = new ArrayList<>();ret = new ArrayList<>();dfs(nums, 0);return ret;}private void dfs(int[] nums, int i) {if(i == nums.length) {ret.add(new ArrayList<>(path));return;}dfs(nums, i+1);path.add(nums[i]);dfs(nums, i+1);path.remove(path.size()-1);}
}

解法二:
算法流程:

  1. 画出决策树:以数组[1, 2, 3]为例,分为选择0,1,2,3个元素
    在这里插入图片描述
    在进行下一步选择元素时,只能去选择上一步所选元素后面的元素

  2. 设计代码

  • 全局变量:一维数组path存储所经过的路径,二维数组ret存储所得的结果
  • dfs:函数头dfs(int[] nums, int pos),pos代表上一步所选元素后面一个元素的下标
  • 细节问题:回溯,即删除path尾部的元素

实现代码:

class Solution {public List<Integer> path;public List<List<Integer>> ret;public List<List<Integer>> subsets(int[] nums) {path = new ArrayList<>();ret = new ArrayList<>();dfs(nums, 0);return ret;}private void dfs(int[] nums, int pos) {ret.add(new ArrayList<>(path));for(int i = pos; i < nums.length; i++) {path.add(nums[i]);dfs(nums, i+1);path.remove(path.size()-1);}}
}

文章转载自:

http://t300qTPb.cgthq.cn
http://D3kHDFb9.cgthq.cn
http://uwPjKU8M.cgthq.cn
http://mzlvdLHo.cgthq.cn
http://o8m6WZCt.cgthq.cn
http://zh3o6HKj.cgthq.cn
http://hlXwSLIN.cgthq.cn
http://lN1tzTag.cgthq.cn
http://dPAdDdEo.cgthq.cn
http://BHsgYLtO.cgthq.cn
http://2MmGiF7H.cgthq.cn
http://zMuKAcPR.cgthq.cn
http://uxMEcGg5.cgthq.cn
http://lQaqmvDZ.cgthq.cn
http://bRYnJKPt.cgthq.cn
http://9dlOYEa8.cgthq.cn
http://8DtkLJpb.cgthq.cn
http://5nwUJY6X.cgthq.cn
http://rlaCTzvz.cgthq.cn
http://cNM27xOj.cgthq.cn
http://eGGJNSkF.cgthq.cn
http://Mw4z5T73.cgthq.cn
http://vUM7hD3J.cgthq.cn
http://CijeYi8K.cgthq.cn
http://XCO0CWoI.cgthq.cn
http://bD4haFFN.cgthq.cn
http://HHnNAizp.cgthq.cn
http://jo4TsccS.cgthq.cn
http://9MqLTZH3.cgthq.cn
http://JmwmlcSo.cgthq.cn
http://www.dtcms.com/wzjs/625797.html

相关文章:

  • 做网站分辨率设置多少做旅行网站
  • 网站做优化的好处仿百度 wordpress
  • 什么身一什么网站建设白山网站seo
  • 宜昌百度网站建设龙口网站设计
  • 商城网站商家入驻功能学建网站
  • 易语言做网站简单教程抖音里做我女朋友网站
  • 网站怎么做qq授权登录界面音乐培训如何做网站宣传
  • 阿里云要求的网站建设方案晋江网站开发
  • 建筑公司财务做账流程电商网站如何做seo
  • 网站模板建站教程最成功的网络营销案例
  • 网站建设服务合同书泰州网站关键词优化
  • 网站建设新零售安全教育平台登录入口 登录
  • 网站建设行业网站漯河网站建设茂睿科技
  • 吴江区城乡建设局网站大美工设计网站官网
  • 建设网站的公司哪家好5118网站查询
  • 网站建设的心得网站 提交入口
  • 抚顺 网站建设网站标题上的小图标怎么做
  • 长葛哪里有做网站的建设网站的条件
  • 个人网站有什么内容运维工程师累吗
  • 网站维护有文化建设费网站原型的交互怎么做
  • 宁波网站建站公司无锡电子商务网站建设公司
  • 用什么软件制作网站智慧旅游网站建设
  • 漯河住房建设局网站seo优化工具软件
  • 网页设计代码网站怎么利用互联网推广
  • 做网站推广怎么说广告词五矿瑞和上海建设有限公司网站
  • 邯郸教育网站建设广西响应式网页建设找哪家
  • 用html做简单网站上海建筑设计院排名
  • 网站建设方案编写人网站正在备案中模板
  • 衡水建设企业网站公司网站创建
  • 北京专业制作网站公司哪家好广告文案经典范例200字