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

母婴用品商城网站建设那里做网站

母婴用品商城网站建设,那里做网站,全国网站设计排名,wordpress 医疗一、电话号码的字母组合题目链接思路#xff1a;回溯三部曲。确定回溯函数参数#xff1a;题目中给的 digits#xff0c;还要有一个参数就是int型的index#xff08;记录遍历第几个数字#xff0c;就是用来遍历digits的#xff0c;同时也代表了递归的深度#xff09;回溯三部曲。确定回溯函数参数题目中给的 digits还要有一个参数就是int型的index记录遍历第几个数字就是用来遍历digits的同时也代表了递归的深度第三个参数numString(数字和字母映射)。确定终止条件如果index 等于 输入的数字个数digits.size了就return。确定单层遍历逻辑首先要取index指向的数字并找到对应的字符集然后for循环来处理这个字符集注意1解决三个问题数字和字母如何映射 使用map或者定义一个二维数组两个字母就两个for循环三个字符我就三个for循环以此类推然后发现代码根本写不出来输入1 * #按键等等异常情况2区别于普通的组合问题本题是多个集合求组合因为本题每一个数字代表的是不同集合也就是求不同集合之间的组合。3全局变量一个字符串sb来收集叶子节点的结果一个字符串数组result保存sb。解法class Solution {// 最终结果字符数组和单次符合条件结果ListString res new ArrayList();StringBuffer sb new StringBuffer();public ListString letterCombinations(String digits) {if (digits.length() 0 || digits null)return res;String[] numString {, , abc, def, ghi, jkl, mno, pqrs, tuv, wxyz};backTracking(digits, numString, 0);return res;}public void backTracking(String digits, String[] numString ,int num) {if (num digits.length()){res.add(sb.toString());return;}// digits.charAt(num)能够获取到当前的号码数字2-9String t numString[digits.charAt(num) - 0];for (int i 0; i t.length(); i) {sb.append(t.charAt(i));backTracking(digits, numString, num 1);sb.deleteCharAt(sb.length() - 1); //回溯}} }二、组合总和题目链接思路基本与组合总和III类似。区别有组合没有数量要求元素可无限重复选取注意如果是一个集合来求组合的话就需要startIndex否则会出现重复情况如果是多个集合取组合各个集合之间相互不影响那么就不用startIndex。解法未剪枝ListListInteger res new ArrayList(); LinkedListInteger path new LinkedList(); public ListListInteger combinationSum(int[] candidates, int target) {// sum, startIndex是开始位置也是candidates的索引back(candidates, target, 0,0);return res; }private void back(int[] candidates, int target, int sum, int startIndex) {if (sum target){res.add(new ArrayList(path));return;}if (sum target)return;for (int i startIndex; i candidates.length; i){path.add(candidates[i]);sum candidates[i];back(candidates, target, sum, i);sum - candidates[i];path.removeLast();} }剪枝优化1.对总集合排序之后如果下一层的sum就是本层的 sum candidates[i]已经大于target就可以结束本轮for循环的遍历。解法class Solution {ListListInteger res new ArrayList();LinkedListInteger path new LinkedList();public ListListInteger combinationSum(int[] candidates, int target) {Arrays.sort(candidates); // 先进行排序back(candidates, target, 0, 0);return res;}private void back(int[] candidates, int target, int sum, int startIndex) {if (sum target){res.add(new ArrayList(path));return;}if (sum target)return;// 多一步判断for (int i startIndex; i candidates.length sum candidates[i] target; i){path.add(candidates[i]);sum candidates[i];back(candidates, target, sum, i);sum - candidates[i];path.removeLast();}} }三、组合总和II题目链接思路与组合总和类似但区别于本题candidates 中的每个数字在每个组合中只能使用一次。本题数组candidates的元素是有重复的而39.组合总和 (opens new window)是无重复元素的数组candidates。也就是说组合里的元素可能有重复且只使用一次但组合之间不能重复。本题的难点在于区别2中集合数组candidates有重复元素但还不能有重复的组合。去重也去的是同一个树层上重复的值。代码里就是判断i startIndex candidates[i] candidates[i - 1]直接continue解法class Solution {ListListInteger res new ArrayList();LinkedListInteger path new LinkedList();public ListListInteger combinationSum2(int[] candidates, int target) {Arrays.sort(candidates); // 先进行排序back(candidates, target, 0, 0);return res;}private void back(int[] candidates, int target, int sum, int startIndex) {if (sum target){res.add(new ArrayList(path));return;}if (sum target)return;for (int i startIndex; i candidates.length sum candidates[i] target; i){// 碰到同一树层重复元素 直接continueif ( i startIndex candidates[i] candidates[i - 1] ) {continue;}path.add(candidates[i]);sum candidates[i];back(candidates, target, sum, i 1);sum - candidates[i];path.removeLast();}} }
http://www.hkea.cn/news/14546241/

相关文章:

  • 彩票网站制作免费下载百度到桌面
  • 医疗营销型网站建设制作网站公司首 荐乐云seo
  • 网站建设saas排名手机网站的特效
  • 网站的网络设计公司邯郸信息港房屋出售
  • 东莞网站制作的方案游戏网站织梦模板
  • 优质的seo网站排名优化软件企业网站制作正规公司
  • 深圳模板网站建设设计公司app制作多少钱一个
  • 开家给别人做网站公司Wordpress禁止搜索内容
  • 海淀做网站的网络公司进入百度搜索网站
  • 合肥软件开发网站建设一个好网站设计
  • asp.net网站项目建设最新经济新闻及其评论
  • 企业网站建设及维护公司网站开发后台代码
  • 网站建设规划范文哪些做网站的公司
  • 宁波企业网站排名方法品牌好的建筑企业查询
  • 网站开发的相关技能有哪些域名哪里注册
  • 做经营网站怎么赚钱吗做网站1天转多钱
  • 专业的天津网站建设恒美广告公司
  • 网站群内容管理系统的设计与实现设计师可以在哪些网站接单
  • 个人网站更换域名线上编程课程
  • 服务器做网站配置网站的竞争对手
  • 对网站开发与管理的分析单位建设网站的作用意义
  • 制作网站能挣钱网页制作培训有前途吗
  • 酒泉网站建设服务广州公共资源交易中心招标网
  • 网站盗号怎么做室内装修设计上海
  • 河北网站建设电话最新互联网平台项目
  • 济南好的网站建设公司哪家好江苏省建设厅官网网站首页
  • 网站建设留言板的实现零基础制作公司网站教程
  • 四海网络网站建设建站wordpress 会被墙吗
  • 深圳网站建设网站运营房屋租赁合同
  • 网站设计排版布局视频网站的建设预算