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

湛江网站建设维护常州找工作哪个网站好

湛江网站建设维护,常州找工作哪个网站好,长安做外贸网站,网页功能设计39. 组合总和 39. 组合总和 - 力扣(LeetCode) 题目链接/文章讲解:代码随想录 视频讲解:带你学透回溯算法-组合总和(对应「leetcode」力扣题目:39.组合总和)| 回溯法精讲!_哔哩哔哩_…

39. 组合总和

39. 组合总和 - 力扣(LeetCode)

题目链接/文章讲解:代码随想录

视频讲解:带你学透回溯算法-组合总和(对应「leetcode」力扣题目:39.组合总和)| 回溯法精讲!_哔哩哔哩_bilibili

自己乱写的,回溯的时候没有去掉重复使用的数字

class Solution {List<Integer> group = new ArrayList<>();List<List<Integer>> result = new ArrayList<>();int sum = 0;public void backTracking (int[] candidates,int target){if(sum == target){List<Integer> temp = new ArrayList(group);Collections.sort(temp);for(List<Integer> oneList:result){if(oneList.equals(temp)==true)return;}result.add(new ArrayList(temp));return;}else if(sum > target)return;for(int i = 0;i < candidates.length;i++){group.add(candidates[i]);sum += candidates[i];backTracking(candidates,target);group.remove(group.size() - 1);sum -= candidates[i];}}public List<List<Integer>> combinationSum(int[] candidates, int target) {backTracking(candidates,target);return result;}
}

没有剪枝

剪枝

修改

class Solution {List<Integer> group = new ArrayList<>();List<List<Integer>> result = new ArrayList<>();int sum = 0;public void backTracking (int[] candidates,int target,int startIndex){if(sum == target){result.add(new ArrayList(group));return;}for(int i = startIndex;i < candidates.length;i++){if(candidates[i] + sum > target)break;//排过序,现在已经超过target,说明后面的数已经不需要遍历了group.add(candidates[i]);sum += candidates[i];backTracking(candidates,target,i);group.remove(group.size() - 1);sum -= candidates[i];}}public List<List<Integer>> combinationSum(int[] candidates, int target) {Arrays.sort(candidates);//一定要先对数组排序,为了剪枝backTracking(candidates,target,0);return result;}
}

40.组合总和II

40. 组合总和 II - 力扣(LeetCode)

注意题目中给我们 集合是有重复元素的,那么求出来的 组合有可能重复,但题目要求不能有重复组合。

题目链接/文章讲解:代码随想录

视频讲解:​​​​​​回溯算法中的去重,树层去重树枝去重,你弄清楚了没?| LeetCode:40.组合总和II_哔哩哔哩_bilibili

class Solution {List<Integer> path = new ArrayList<>();List<List<Integer>> result = new ArrayList<>();public void backTracking(int[] candidates,int target,int startIndex,int sum,boolean[] used){if(sum == target){result.add(new ArrayList(path));return;}else if(sum > target)return;for(int i = startIndex;i < candidates.length;i++){if(sum + candidates[i] > target)break;//剪枝操作if(i > 0 && candidates[i] == candidates[i - 1] && used[i - 1] == false){//去重操作continue;}path.add(candidates[i]);sum += candidates[i];used[i] = true;backTracking(candidates,target,i + 1,sum,used);//下一层递归path.remove(path.size() - 1);//回溯sum -= candidates[i];used[i] = false;}}public List<List<Integer>> combinationSum2(int[] candidates, int target) {boolean[] used = new boolean[candidates.length];//记录元素是否被使用Arrays.sort(candidates);//必须排序backTracking(candidates,target,0,0,used);return result;}
}

131.分割回文串

131. 分割回文串 - 力扣(LeetCode)

本题较难,大家先看视频来理解 分割问题,明天还会有一道分割问题,先打打基础。

代码随想录

视频讲解:带你学透回溯算法-分割回文串(对应力扣题目:131.分割回文串)| 回溯法精讲!_哔哩哔哩_bilibili

class Solution {List<String> path = new ArrayList<>();List<List<String>> result = new ArrayList<>();public boolean huiwen(String s,int start,int end){while(start < end){if(s.charAt(start) != s.charAt(end))return false;start++;end--;}return true;}public void backTracking(String s,int startIndex){if(startIndex == s.length()){result.add(new ArrayList(path));return;}for(int i = startIndex;i < s.length();i++){if(huiwen(s,startIndex,i)){//左闭右闭区间path.add(s.substring(startIndex,i + 1));//已经切过的不能再切}else continue;backTracking(s,i + 1);path.remove(path.size()-1);}}public List<List<String>> partition(String s) {backTracking(s,0);return result;} 
}

http://www.dtcms.com/wzjs/804972.html

相关文章:

  • 虚拟电脑可以做网站吗手机网站建设公司报价
  • 新市区做网站编程加盟一般多少钱
  • 郑州网站建设哪一家好wordpress手机怎么分享链接地址
  • 北京模板建站软件广告设计与制作就业前景
  • 政务网站开发wordpress 301
  • 什么软件做网站flash类网站开发
  • 金牛区建设和交通局网站硬件开发和软件开发
  • 重庆网站建设letide h5网站制作平台
  • 安徽建站湖南seo优化首选
  • 搜索引擎网站开发做奖状的网站
  • 广州网站设计制作报价云设计工具
  • 网站建站之后需要维护吗山东网站开发工作室
  • 太原做网站的通讯公司有哪些昌乐做网站
  • seo 怎么建设网站外链网站建立的连接不安全怎么解决
  • 汇算清缴在哪个网站上做新网个人网站备案
  • html手机网站开发教程全网营销外包全网天下
  • 艺阳科技网站建设wordpress 用户枚举
  • 网站制作应用襄樊网站制作公司
  • 建网站最少需要多少钱商场设计公司
  • 做挖机配件销售的网站上海广告传媒有限公司
  • 怎样看网站的建设时间苏州公众号开发
  • 南京企业做网站软件开发能力
  • 权威的南昌网站建设品牌建设是指品牌拥有者对品牌进行的什么行为
  • 哪个网站可以做经济模拟题怎么做网站凡科
  • wordpress返回404网站优化 推广
  • 东莞企业网站制作dede网站百度统计怎么做
  • 网站开发一个人可以完成吗线上广告宣传方式有哪些
  • 21天网站建设实录智能建网站软件
  • 如何制作自己的网站免费长沙网站制作公司推荐
  • html网站两边的浮窗怎么做设计工资一般多少