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

做网站语言排名2018网站开发的方法和步骤

做网站语言排名2018,网站开发的方法和步骤,网站里添加斗鱼直播的视频怎么做,php7 wordpress速度前引:明天就考最后一趟考试,最近考试周,我时时断更,从明天开始,就会一直更新了,可以期待一下 解题思路: 1.获取信息: 给定一个无重复的整数数组和一个目标值 从数组中选取任意数量的…

前引:明天就考最后一趟考试,最近考试周,我时时断更,从明天开始,就会一直更新了,可以期待一下

解题思路:

        1.获取信息:

                给定一个无重复的整数数组和一个目标值

                从数组中选取任意数量的数字,使它们的和等于目标值,就是一组满足条件的组合

                要找出所有不同的组合,并按任意顺序返回它们

                注:同一个数字可以无限制重复被选取

               额外信息:1 <= candidates.length <= 30   

                                 2 <=candidates[ i ] <= 40 

        2.分析题目:

                不同于之前类似的题目,这次,同一个数字可以无限制重复被选取,就需要你推陈出新了

                由于可以选任意数量的数字为一组,所以,面对可能出现很多种情况的条件下

                我打算使用回溯法,不了解回溯法,可以去看一下38题的题解,有详细讲解哦

                这里你可以思考一下,回溯法该怎么实现,我会在最后一个环节借着代码来讲解我的思路的

        3.示例查验:

                你可以检验一下自己的思路是否正确

        4.尝试编写代码:

                (1)回溯法

                        思路:每次从数组种选取一个数,进入下层递归,终止条件是满足所有数字的和为目标值

                        其实我本来想详细说说我的思路的,但是明天早上,我就要考试了,所以我打算长话短说,委屈你了,你可以看我的代码及其注释来进行理解哦

class Solution {
public:vector<vector<int>> combinationSum(vector<int>& candidates, int target) {sort(candidates.begin(),candidates.end());//数组按从小到大的顺序排列vector<vector<int>>res;//储存结果的容器vector<int>path;//储存每次选取的数字reBack(res,candidates,target,path,0);进入回溯return res;//返回结果}
private:void reBack(vector<vector<int>>&res,vector<int>&candidates,int les,vector<int>&path,int i){if(les==0){//如果选取的所有数字之和等于目标值res.push_back(path);return;}for(int j=i;j<candidates.size();j++){//每次选取数字if(candidates[j]>les)return;//剪枝,如果数字大于目标数的大小,就返回path.push_back(candidates[j]);//选取数字reBack(res,candidates,les-candidates[j],path,j);//进入下层递归path.pop_back();//移除选取的数字}}
};

                (2)优化哦

                        这次,不负众望,带来了优化及优化思路哦

                        优化思路:上面的方法,主要的浪费是在每次选取数字的时候,会进行比较多的无用操作,所以,有没有办法避免呢?

                        当然可以了,我们需要对原数组进行预先的处理,因为数组中的数字最大也就40,数组中的数字的数目最多也就30个

                        所以,你还是看我的代码及注释吧,最近我比较懒惰

class Solution {
public:vector<vector<int>> combinationSum(vector<int>& candidates, int target) {vector<bool>cand(41,false);//对数组进行预处理for(int&c:candidates){cand[c]=true;}vector<int>path;//储存选取的数字vector<vector<int>>res;//储存结果的容器reBack(cand,path,res,target,2);//进入回溯return res;//返回结果}
private:void reBack(vector<bool>&cand,vector<int>&path,vector<vector<int>>&res,int les,int i){if(les==0){//如果选取的数字之和等于目标值res.push_back(path);return;}for(i;i<=les;i++){//数字选取的范围,有效地进行了剪枝操作if(cand[i]){//如果该数字存在path.push_back(i);//选取该数字reBack(cand,path,res,les-i,i);path.pop_back();}}}
};

本次题解就到这里了,希望不挂科吧,每次发帖子感觉就像在跟一个让我很舒服的人交流,这几天没有交流,反而感觉患得患失的,尽量每日一更,每天都来与你交流一下

还是提一嘴,纸上得来终觉浅,绝知此事要躬行哦

祝要考期末的,都不挂科,哈哈

http://www.dtcms.com/a/517256.html

相关文章:

  • 网页设计入门首先要学什么企业网站优化与推广
  • 抓住园艺消费升级!亚马逊卖家如何从“卖单品”升级为“做品牌”
  • FPGA-ZYNQ学习对BD的保存与应用
  • 博罗县建设局网站免费好玩的网页游戏
  • 强化运动控制领域布局,杰美康机电授权世强硬创代理
  • 容器适配器、关联容器的相关算法题目
  • 微网站的好处优秀产品设计公司哪家好
  • 树莓派Pico 2W 开发环境搭建
  • 零基础从头教学Linux(Day 54)
  • Dexmal原力灵机发布Dexbotic,从此具身智能研发有了“加速器”
  • 电子商务网站建设步网页打不开验证码图片
  • 怎样做自己的微商网站个人网站备案建设方案书
  • 《用于触觉感知的电阻式传感器技术的最新进展》IEEE SENSORS 2022综述文章解读
  • Redis vs RabbitMQ 对比总结
  • 初识C语言11.数据在内存中的存储
  • 操作系统存储管理核心知识点与例题详解
  • 人工智能风险与伦理(3)
  • the scientist and engineer‘s guide to DSP:5 Linear Systems
  • 近一个月的技术问题总结
  • 360网站推广官网怎么优化网站开发的项目内容
  • 用多工具组合把 iOS 混淆做成可复用的工程能力(iOS混淆|IPA加固|无源码混淆|Ipa Guard|Swift Shield)
  • 丽水网站建设企业wordpress空白页面模板下载
  • 如何推广企业官方网站内容微信公众号推广链接
  • 同一源代码再建设一个网站网站建设升级的必要性
  • Linux:开发工具
  • 深浅复制
  • 为什么做的网站要续费深圳seo网络公司
  • 淄博网站建设公司羊肉片机互联网营销
  • 书店商城网站设计小说网站推荐
  • 辽宁建设厅查询网站首页客源通app下载