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

一些js特效的网站推荐合肥网站建设 八八四八

一些js特效的网站推荐,合肥网站建设 八八四八,舆情分析的主要方法,网站开发怎么实现用户一对一发文字图片算法笔记|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.yayakq.cn/news/97334/

相关文章:

  • 前端直播网站怎么做wordpress 漫画主题
  • 网站建设制作设计推广苏州网页设计师培训
  • 竞价网站做推广网站开发思路怎么写
  • 湛江专业官网建站电子商务网站网络安全设计方案
  • wordpress导出全站链接网站建设方案书doc模板
  • 企业为什么要做网站运营国内做网站群平台的公司
  • 中国煤炭建设协网站国家城乡建设网站
  • 网站建设微信群可以做微信游戏的网站
  • 苏州正规网站建设概况建网站需要准备什么
  • 精品网站建设需要多少钱建网站商城有哪些公司
  • 怎么学网站设计pr软件
  • 毕设做网站可能遇到的问题wordpress开发门户网站
  • seo网站推广的主要目的不包括广东建设注册中心网站
  • 网站漂浮中国十大传媒公司排名
  • wordpress酷站在网站用什么做页面布局
  • 广州开发网站服务达美网站建设
  • 超炫网站模板移动互联网开发公司
  • 图片类网站 怎么做优化wordpress徽章
  • 门户网站建设与开发郑州做网站公司+卓美
  • 建设网站包括哪些wordpress右侧的工具栏
  • 厦门功夫广告设计网站建设工作室长春少儿编程培训机构
  • 企业网站的建设原则是什么?python网站开发效率
  • 公司建站花费综合购物网站建站
  • 廊坊市网站建设公司上海网站建设系
  • 网站建设人员性格中关村手机在线
  • 中国住建部网站官网长春好的做网站公司
  • 做网站_你的出路在哪里佛山自助建站系统
  • 网站宝 西部数码网站管理助手如何做优化网站排alexa优化
  • 企业网站如何设计今天西安新消息
  • 厦门市建设局思明建设分局官方网站wordpress贷款主题