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

asp.net做电商网站设计企业设计网站公司哪家好

asp.net做电商网站设计,企业设计网站公司哪家好,沈阳网红餐厅,绥阳网站建设题意理解: 每个数字在每个组合中只能使用 一次 数字可以重复——>难点(如何去重) 每个组合和target 求组合,对合限制,考虑回溯的方法。——将其抽象为树结构。 树的宽度——分支大小 树的深度——最…

题意理解:

  1.         每个数字在每个组合中只能使用 一次 
  2.         数字可以重复——>难点(如何去重)
  3.         每个组合和=target

        求组合,对合限制,考虑回溯的方法。——将其抽象为树结构。

        树的宽度——分支大小

        树的深度——最长的组合(和=target)

  去重难点:

        根据《代码随想录》关于树层去重的引入:

        第一个位置选2,再次选2的话,下面的分支回出现重复的[2,3]组合。

        实际上保留第一个分支,之后同一位置相同的数值选项可以剪除。

        用used[]数组来维护是否被访问的状态。

        

回溯的方法:

        1.确定返回值+参数列表

        2.确定终止条件|剪枝条件

        3.单层逻辑|回溯操作

1.暴力回溯+剪枝优化

考虑返回值一般为void, 参数包含数组,和目标值,当前数值指示下标

终止条件: sum>=4,特别的sum==4时收集结果。

单层递归逻辑:一定要对sum和path、used数组做好回溯操作。

数层剪枝:candidates[i-1]==candidates[i]遇到重复值

        used[i-1]=true:表示上一个重复的值,在该组合内被用到。

        used[i - 1] == false:表示上一个重复值在该组合内没有用到,应该是同一树层用到——即数层重复,剪枝。

List<List<Integer>> result=new ArrayList<>();LinkedList<Integer> path=new LinkedList<>();int sum=0;public List<List<Integer>> combinationSum2(int[] candidates, int target) {boolean[] used=new boolean[candidates.length];Arrays.sort(candidates);Arrays.fill(used, false);backtrackig(candidates,target,0,used);return result;}public void backtrackig(int[] candidates, int target,int startIndex,boolean[] used){//终止|剪枝if(sum>target) return;else if (sum==target) {result.add(new ArrayList<>(path));return;}//单层递归逻辑for(int i=startIndex;i<candidates.length;i++){//数层剪枝if(i!=0&&candidates[i-1]==candidates[i]&&used[i-1]==false) continue;path.add(candidates[i]);sum+=candidates[i];used[i]=true;backtrackig(candidates,target,i+1,used);path.removeLast();sum-=candidates[i];used[i]=false;}}

注意两个特殊的地方:

Arrays.sort(candidates);//数组排序

Arrays.fill(used, false);//数组填充,实际上该数组默认也是false.

2.分析

时间复杂度:O(2^{n} \times n)

空间复杂度:O(n)

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

相关文章:

  • 自己怎么做网站购买空间郑州企业服务公司
  • 网站一个多少钱西安做网站选哪家公司
  • 镇江网站建设哪家好深圳市福田建设局网站
  • 学计算机网站开发好吗南京江北新区最新规划
  • 做视觉影像网站用什么软件系统宜宾建设教育培训中心网站
  • 阿里云网站建设 部署与发布答案网上的推广
  • 网站访客分析酷炫网站推荐
  • 网站上线流程 配合人员新手机发布
  • 朝阳区规划网站开发一个直播平台需要多少钱
  • 乐清人才网官方网站郑州做个人网站的公司
  • 医院网站队伍建设广州网站建设gzzhixun
  • 青岛响应式网站天津市网站建设 网页制作
  • 广州网站建设策划wordpress文章发布
  • 如何搭建一个完整的网站经典 wordpress主题下载
  • 微信网站开发工具wordpress 4.9.6 主题
  • 网站建设公司薪酬哈尔滨市哪里做淘宝网站
  • 如何做网站关键词词霸官方网站下载打印机驱动
  • 网站建设xiduyun萧山网站建设微信 话
  • 南京公司网站建设平台如何用wordpress上传根目录
  • 建网站合同百度云官网
  • 南宁网站建设官网西部数码 网站建设
  • 手机端网站html好看的单页模板营销方案效果评估范文
  • wordpress 页面显示最新文章网站seo优化要懂得做微调
  • 德州做网站建设的公司哪家好公司名称大全集最新3个字
  • 网站制作找私人多少钱wordpress 页面分类
  • dw网站建设怎么放在网上聊城企业网站建设
  • 建设部网站施工合同版本烟台网站seo服务
  • 做网站字号多大3免费做网站
  • 哈尔滨建设局网站中职网站建设与维护试卷
  • 网站雪花飘落代码wordpress加速会主题曲