力扣(39.40)补9.20-创新互联

目前打算刷些算法题,数据结构的题暂时放一放吧。

成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站设计、网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的深泽网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

39.组合总和

不会,毕竟好久没做回溯了。

b0ca6da56ffa4b0d997e97aa17398b0d.png

看了这个图会好理解很多呦。

class Solution {

  List>ans=new ArrayList<>();

  Listlist=new ArrayList<>();

  public List>combinationSum(int[] candidates, int target) {       

  int n=candidates.length;

  Arrays.sort(candidates);

  back(candidates,target,0,n,0);

  return ans;

  }

  public void back(int[] candidates,int target,int index,int n,int sum){

  

  if(sum==target){

  ans.add(new ArrayList<>(list));

这里要对list转型才能调用add函数。

  return ;

  }

  for(int i=index;i

  

  if(sum+candidates[i]>target) break;

  else{

  list.add(candidates[i]);

  back(candidates,target,i,n,sum+candidates[i]);

  list.remove(list.size()-1);

  }

  }

  }

}

40.组合总和Ⅱ

可以做,这题和上题比,有个细节就是解集不能包含重复元素。

class Solution {

  List>ans=new ArrayList<>();

  Listlist=new ArrayList<>();

  public void back(int[] candidates,int index,int target){

  if(0==target){

  ans.add(new ArrayList<>(list));

  return;

  }

  for(int i=index;i

  if(i>index&&candidates[i]==candidates[i-1])

  continue;

这样就能保证没有重复解集。

  if(0>target)break;

  list.add(candidates[i]);

  back(candidates,i+1,target-candidates[i]);

  list.remove(list.size()-1);

  }

  }

  public List>combinationSum2(int[] candidates, int target) {

  Arrays.sort(candidates);

  back(candidates,0,target);

  return ans;

  }

}

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网站标题:力扣(39.40)补9.20-创新互联
网址分享:http://bzwzjz.com/article/csheod.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 古蔺网站建设 泸州网站建设 网站制作 高端网站设计 品牌网站建设 成都企业网站设计 成都网站建设 响应式网站设计 手机网站建设套餐 品牌网站建设 响应式网站设计方案 成都网站建设公司 四川成都网站制作 成都网站建设 四川成都网站设计 成都网站建设推广 手机网站制作 成都网站建设公司 成都定制网站建设 营销型网站建设 成都网站设计 高端网站建设