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

许昌网站建设找汉狮做网站需要报备什么

许昌网站建设找汉狮,做网站需要报备什么,北京市住房和城乡建设局官网,网站开发的销售组合问题的特点 (1)abba 选中a之后,就不再选了 (2)找出所有的组合 (长度可以不相等) 组合问题模板 做回溯题步骤 (0)判断问题类型 (1)树状图 …

在这里插入图片描述

  1. 组合问题的特点
    (1)ab=ba 选中a之后,就不再选了
    (2)找出所有的组合 (长度可以不相等)

  2. 组合问题模板
    在这里插入图片描述

  3. 做回溯题步骤
    在这里插入图片描述

    (0)判断问题类型
    (1)树状图
    (2)递归三部曲
    (3)剪枝条件

  4. 组合问题中的纵横剪枝 ----> 216.组合总和III
    ==有图==

  5. 去重
    (1)横向去重
    在这里插入图片描述
    (2)set横向去重

在这里插入图片描述

代码

 public void findSubsequencesBT(int[] nums,int startIndex) {HashSet<Integer> set = new HashSet<>();for (int i = startIndex; i < nums.length; i++) {// 剪枝if (findSubsequencesPath.size()>0&&findSubsequencesPath.get(findSubsequencesPath.size()-1)[0]>nums[i]){continue;}// 此处不能是==,只能是>= 为空时也要判断去重if ((findSubsequencesPath.size()==0||findSubsequencesPath.size()>0&&findSubsequencesPath.get(findSubsequencesPath.size()-1)[0]<=nums[i])&&set.contains(nums[i])){continue;}//三件套//using[i]=true;findSubsequencesPath.add(new int[]{nums[i],i});set.add(nums[i]);if (findSubsequencesPath.size()>=2){ArrayList<Integer> temp = new ArrayList<>();for (int j = 0; j <findSubsequencesPath.size() ; j++) {temp.add(findSubsequencesPath.get(j)[0]);}ires.add(temp);}findSubsequencesBT(nums,i+1);findSubsequencesPath.remove(findSubsequencesPath.size()-1);// set 不用回溯,每层一个// using[i]=false;}}

关键
在这里插入图片描述

  1. 分割递归终止条件
    分割常用的递归出口
    (1)startIndex==数组长度
    缺点: 如果是分割有段数要求,例如ip,可能分割很多段后才到递归出口,1.1.1.1.1.1.1 再判断,白白浪费性能。
    改进:当已经分割三段时,第四段直接判断,这样可以剪掉部分,但是最后还是会一个一个试
   public void restoreIpAddressesBT(String s,int startIndex) {if (startIndex==s.length()){if (restoreIpAddressesPath.size()==4){StringBuilder sb = new StringBuilder();for (String s1 : restoreIpAddressesPath) {sb.append(s1+".");}sb.delete(sb.length()-1,sb.length());slist.add(sb.toString());}return;}for (int i = startIndex; i <s.length() ; i++) {String substring = s.substring(startIndex, i + 1);// 剪枝// 如果已经有3个了,直接看剩下的能不能凑成第四个就行if (restoreIpAddressesPath.size()==3&&valIsValid(s.substring(startIndex))==-1){return;  // 本层全不能用}if (valIsValid(substring)==-1){continue;}restoreIpAddressesPath.add(substring);restoreIpAddressesBT(s,i+1);restoreIpAddressesPath.remove(restoreIpAddressesPath.size()-1);}}

(2)如果有段数要求,直接用段数作为剪枝条件

  if (restoreIpAddressesPath.size()==4){if (startIndex==s.length()){StringBuilder sb = new StringBuilder();for (String s1 : restoreIpAddressesPath) {sb.append(s1+".");}sb.delete(sb.length()-1,sb.length());slist.add(sb.toString());}return;}

在这里插入图片描述
这样只要到段数,就会判断,不会再 1.1.1.1.1.1.1这样分

题型

组合问题

每条从根出发的子路径是一个结果

  1. 传统组合问题 每一条子路径都是一种组合 —>● 77. 组合● 216.组合总和III
  2. 从筐中取球类型–>● 17.电话号码的字母组合
  3. 组合,元素不重,元素可重复取 39. 组合总和
  4. 组合,元素重复,结果不重,横向去重–> 40.组合总和II

子集问题

  1. 组合问题之子集问题,找到所有从根节点出发的子路径,包含【】
    ---->78.子集
  2. 组合问题之递增序列,本质是子集问题,使用set去重,注意第一层时path可能为空 491.递增子序列

分割

每条路径是一个结果
5. 标准分割 --> 131.分割回文串 ● 93.复原IP地址

排列

  1. 排列,借助used数组 46.全排列 47.全排列 II

递归树

  1. 传统组合
    在这里插入图片描述

  2. 筐中取球
    在这里插入图片描述

  3. 组合,每个元素可重复
    在这里插入图片描述

  4. 组合,元素重复,结果不重,横向去重
    在这里插入图片描述

  5. 标准分割
    在这里插入图片描述
    (2)分割模板

// 131.分割回文串 public void partitionBT(String s,int startIndex) {if (startIndex==s.length()){sres.add(new ArrayList<>(spath));return;}// 引擎for (int i = startIndex; i <s.length() ; i++) {// 剪枝if (!isPalindrome(s,i,startIndex)){return;}spath.add(s.substring(i, startIndex + 1));partitionBT(s,i+1);spath.remove(spath.size()-1);// 本层下一个}}

(3)不同之处
在这里插入图片描述
6. 子集问题
78.子集
(2)子集问题模板

 // 78. 子集public void subsetsBT(int[] nums,int startIndex) {// 找所有从根节点的子路径,为处理空置,先加入ires.add(new ArrayList<>(ipath));// 递归终止条件  直接使用循环终止// 循环引擎for (; startIndex <nums.length ; startIndex++) {// 剪枝 无//三件套ipath.add(nums[startIndex]);subsetsBT(nums,startIndex+1);ipath.remove(ipath.size()-1); //  删除的是startIndex}}

(3)不同之处
在这里插入图片描述
7. 递增序列问题

在这里插入图片描述

代码

 public void findSubsequencesBT(int[] nums,int startIndex) {HashSet<Integer> set = new HashSet<>();for (int i = startIndex; i < nums.length; i++) {// 剪枝if (findSubsequencesPath.size()>0&&findSubsequencesPath.get(findSubsequencesPath.size()-1)[0]>nums[i]){continue;}// 此处不能是==,只能是>= 为空时也要判断去重if ((findSubsequencesPath.size()==0||findSubsequencesPath.size()>0&&findSubsequencesPath.get(findSubsequencesPath.size()-1)[0]<=nums[i])&&set.contains(nums[i])){continue;}//三件套//using[i]=true;findSubsequencesPath.add(new int[]{nums[i],i});set.add(nums[i]);if (findSubsequencesPath.size()>=2){ArrayList<Integer> temp = new ArrayList<>();for (int j = 0; j <findSubsequencesPath.size() ; j++) {temp.add(findSubsequencesPath.get(j)[0]);}ires.add(temp);}findSubsequencesBT(nums,i+1);findSubsequencesPath.remove(findSubsequencesPath.size()-1);// set 不用回溯,每层一个// using[i]=false;}}

关键
在这里插入图片描述
8. 排列

    public void permuteBT(int[] nums,boolean[] used) {if (ipath.size()==nums.length){ires.add(new ArrayList<>(ipath));return;}for (int i = 0; i <nums.length ; i++) {if (used[i]==true){continue;}// 剪枝// 三件套used[i]=true;ipath.add(nums[i]);permuteBT(nums,used);ipath.remove(ipath.size()-1);used[i]=false;}}

在这里插入图片描述

http://www.yayakq.cn/news/187267/

相关文章:

  • c 语言做网站网站建设谈单情景对话
  • 浙江省建设局网站网站备案接入服务商
  • 网站建设的教材网站建设 实施计划
  • 秦皇岛网站开发有什么网站可以做微信支付
  • 网站建设者属于广告经营者吗个人备案做电影网站
  • 2018企业网站优化应该怎么做雷神代刷网站推广快速
  • 设计模版网站常用网站推广方法
  • 排版好看的网站界面种子网站开发
  • 常州公司建站模板会员小程序怎么做
  • 什么是营销型的网站模板下载失败
  • 网站收录一般多久视频网站开发策划书
  • 网站建设工作安排方案网站开发如何适应手机现实要求
  • 湖北网站定制开发价格表网站建设的目的与意义是什么意思
  • 上海网站设计流程成都全案设计公司
  • 天津住房和城乡建设厅网站汽车网站模块
  • 电子商务网站建设的开发背景wordpress添加爬虫数据
  • wordpress文件系统插件郑州seo建站
  • 隆尧建设局网站江小白网络营销方式
  • 榆林建设银行的网站北京网站制作设计哪个公司好
  • 图片展示型网站大名做网站
  • 网站维修合同百度招聘官网
  • 专门建立网站的公司吗如何选择医疗网站建设
  • 高端网站建设1培训心得体会1000字
  • 网站建站模板样例帝国cms建站实例教程
  • 瑞安外贸网站制作网站开发需要的编程软件
  • 婚纱摄影网站开发抖音排名优化
  • 珍岛外贸网站建设德阳网站建设
  • 极品wordpress素材教程网站wordpress子页面密码
  • 网站的建设与应用wordpress页面加载时间
  • 电商网站建设的特点c 做网站加载多个图片