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

晋中公司做网站企业营销管理

晋中公司做网站,企业营销管理,九天利建公司简介,莱芜可靠的网站建设算法笔记|Day20回溯算法II ☆☆☆☆☆leetcode 39. 组合总和题目分析代码 ☆☆☆☆☆leetcode 40.组合总和II题目分析代码 ☆☆☆☆☆leetcode 131.分割回文串题目分析代码 ☆☆☆☆☆leetcode 39. 组合总和 题目链接:leetcode 39. 组合总和 题目分析 本题采用回…

算法笔记|Day20回溯算法II

  • ☆☆☆☆☆leetcode 39. 组合总和
    • 题目分析
    • 代码
  • ☆☆☆☆☆leetcode 40.组合总和II
    • 题目分析
    • 代码
  • ☆☆☆☆☆leetcode 131.分割回文串
    • 题目分析
    • 代码

☆☆☆☆☆leetcode 39. 组合总和

题目链接:leetcode 39. 组合总和

题目分析

本题采用回溯算法,组合没有数量要求,且元素可无限重复选取,故每次遍历都可以从第一个元素开始。

代码

class Solution {List<List<Integer>> res=new ArrayList<>();List<Integer> path=new LinkedList<>();public List<List<Integer>> combinationSum(int[] candidates, int target) {backtrcking(candidates,target,0,0);return res;}public void backtrcking(int candidates[],int target,int sum,int start){if(sum>target)return;if(sum==target){res.add(new ArrayList(path));return;}for(int i=start;i<candidates.length;i++){sum+=candidates[i];path.add(candidates[i]);backtrcking(candidates,target,sum,i);sum-=candidates[i];path.removeLast();}}
}

☆☆☆☆☆leetcode 40.组合总和II

题目链接:leetcode 40.组合总和II

题目分析

本题集合(数组candidates)有重复元素,但不能有重复的组合,涉及到去重的逻辑,采用了used数组,若该元素在本轮回溯遍历(树层)中用到过赋值为1,后续不再使用,回溯时恢复为0;但在递归遍历(树枝)中用到过,还可以继续使用。

代码

class Solution {List<List<Integer>> res=new ArrayList<>();List<Integer> path=new LinkedList<>();public List<List<Integer>> combinationSum2(int[] candidates, int target) {Arrays.sort(candidates);int used[]=new int[candidates.length];backtracking(candidates,target,0,0,used);return res;}public void backtracking(int candidates[],int target,int sum,int start,int used[]){if(sum>target)return;if(sum==target){res.add(new ArrayList(path));return;}for(int i=start;i<candidates.length;i++){if(i>0&&candidates[i]==candidates[i-1]&&used[i-1]==0)continue;sum+=candidates[i];path.add(candidates[i]);used[i]=1;backtracking(candidates,target,sum,i+1,used);sum-=candidates[i];path.removeLast();used[i]=0;}}
}

☆☆☆☆☆leetcode 131.分割回文串

题目链接:leetcode 131.分割回文串

题目分析

切割问题可以仿照组合问题利用回溯,从前往后搜索,如果发现回文,进入backtracking,起始位置后移一位,循环结束照例移除str的末位。

代码

class Solution {List<List<String>> res=new ArrayList<>();List<String> str=new ArrayList<>();public List<List<String>> partition(String s) {backtracking(s,0,new StringBuilder());return res;}public void backtracking(String s,int start,StringBuilder sb){if(start==s.length()){res.add(new ArrayList(str));return;}for(int i=start;i<s.length();i++){sb.append(s.charAt(i));if(check(sb)){str.add(sb.toString());backtracking(s,i+1,new StringBuilder());str.removeLast();}}}public boolean check(StringBuilder sb){for(int i=0;i<sb.length()/2;i++){if(sb.charAt(i)!=sb.charAt(sb.length()-1-i))return false;}return true;}
}

提示:回文串是向前和向后读都相同的字符串,可以考虑使用双指针法,一个指针从前向后,一个指针从后向前,如果前后指针所指向的元素是相等的,就是回文字符串了;也可以直接判断前一半元素和对称位置的元素是否相等。

http://www.ritt.cn/news/4804.html

相关文章:

  • 鞍山网站哪家好网络营销软件下载
  • 哪个网站有卖做一次性口机器的企业如何做好网络营销
  • 驻马店网站建设电话推广普通话奋进新征程
  • 临沂网站建设哪家专业关键词优化怎么操作
  • 湖北省利川市建设局网站网推什么意思
  • 叫别人做网站后怎么更改密码百度seo软件
  • 富阳建设局网站如何在百度上发布自己的文章
  • 哈尔滨营销网站建设公司域名注册哪个网站好
  • 手机网站建设沈阳网站排名优化快速
  • 网站引导页分为三个板块设计风格网络广告营销典型案例
  • 网站百度指数分析杭州seo推广公司
  • 做网站老板嫌弃太丑谁的锅学习软件
  • 建站wordpress广告网络推广怎么做
  • 中国做跨境电商出口的网站河南疫情最新情况
  • 深圳做h5网站的公司淄博seo培训
  • 网页游戏开服表弹窗seo推广系统
  • 独立网站建设费用列表培训机构
  • 域名和网站空间推广公司app主要做什么
  • 网站主页图片怎么换市场监督管理局官网入口
  • 昆明网站优化工具知乎推广合作
  • 公司网页制作网站淘宝推广公司
  • wordpress remove_query_arg中国网民博客 seo
  • 知名企业网站建设案例百度公司简介介绍
  • 学校学院网站建设意义seo是什么意思广东话
  • 做第一个php网站内部优化
  • 莱芜网站建设服务百度移动排名优化软件
  • 中企动力网站建设公司北京效果好的网站推广
  • 什么网站http后面有什么区别移动网站优化排名
  • 网站后台统计怎么启动啊整站seo外包
  • 企点qq官网宁波做seo推广企业