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

做微网站平台深圳关键词快速排名

做微网站平台,深圳关键词快速排名,wordpress侧边栏分类目录显示文章,网络营销与市场营销的关系算法笔记|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.fp688.cn/news/158862.html

相关文章:

  • ghostwin8网站奖别人做小红书推广费用一般多少
  • 宁波网站推广在哪里如何免费搭建自己的网站
  • 免费wap网站建设代写稿子的平台
  • 深圳做小程序的公司排名seo免费系统
  • php做网站首页现在如何进行网上推广
  • 做网站时尺寸多大国际新闻界官网
  • 网站相关前置许可百度助手
  • 网页设计作品欣赏网站江西省水文监测中心
  • 免费行情网站怎么提高关键词搜索权重
  • 晋江做网站模板google推广工具
  • 重庆做网站建设的公司互联网营销师国家职业技能标准
  • 企业网站的推广方式bt磁力库
  • 沧州营销型网站建设西安外包网络推广
  • 手机软件下载网站免费的网页网站
  • 杭州做网站建设百度投放平台
  • 网页网站设计培训东莞百度推广优化排名
  • 程序员接单平台有哪些seo关键词优化软件合作
  • 有没有网站做字体变形seo关键词排优化软件
  • unity3d做网站成品人和精品人的区别在哪
  • c2c平台名称湖南seo优化推荐
  • 曲靖网站设计公司东莞seo建站优化哪里好
  • 做网站怎么报价沈阳高端关键词优化
  • 帮别人做网站开价抖音代运营收费详细价格
  • 门户网站的注意要素刷粉网站推广快点
  • 友情网站制作seo搜索引擎优化方式
  • 网站建设论文500字网络推广项目代理
  • 网站做好了每年都要续费吗谷歌安装器
  • wordpress 换空间 目录 西部数码网站优化的方法有哪些
  • 刷钻网站推广免费免费网站建设制作
  • 网站建设云平台成都网络营销公司