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

做的最好的相亲网站有哪些合肥网站推广优化公司

做的最好的相亲网站有哪些,合肥网站推广优化公司,动态网页制作的基本步骤,做app和网站贪心章节的题目,做不出来看题解的时候,千万别有 “为什么这都没想到” 的感觉,想不出来是正常的,转变心态 “妙啊,又学到了新的思路” ,这样能避免消极的心态对做题效率的影响。 134. 加油站 按卡哥的思路…

贪心章节的题目,做不出来看题解的时候,千万别有 “为什么这都没想到” 的感觉,想不出来是正常的,转变心态 “妙啊,又学到了新的思路” ,这样能避免消极的心态对做题效率的影响。

134. 加油站

按卡哥的思路:

首先如果总油量减去总消耗大于等于零那么一定可以跑完一圈,说明 各个站点的加油站 剩油量rest[i]相加一定是大于等于零的。

每个加油站的剩余量rest[i]为gas[i] - cost[i]。

i从0开始累加rest[i],和记为curSum,一旦curSum小于零,说明[0, i]区间都不能作为起始位置,因为这个区间选择任何一个位置作为起点,到i这里都会断油,那么起始位置从i+1算起,再从0计算curSum。

这种其实算是暴力解法的优化,相当于利用了前面的信息,当 sum 变成负数时,确认了 [ 0 ,i ] 的点都无法作为起点。

为什么一旦[0,i] 区间和为负数,起始位置就可以是i+1呢,i+1后面就不会出现更大的负数?

如果出现更大的负数,就是更新i,那么起始位置又变成新的i+1了。那有没有可能 [0,i] 区间 选某一个作为起点,累加到 i这里 curSum是不会小于零?

证明采用反证法,用卡哥的图来解释

如果 curSum<0 说明 区间和1 + 区间和2 < 0, 那么 假设从上图中的位置开始计数curSum不会小于0的话,就是 区间和2>0。

区间和1 + 区间和2 < 0 同时 区间和2>0,只能说明区间和1 < 0, 那么就会从假设的箭头初就开始从新选择其实位置了。

class Solution {
public:int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {int curSum = 0;int totalSum = 0;int start = 0;for (int i = 0; i < gas.size(); i++) {curSum += gas[i] - cost[i];totalSum += gas[i] - cost[i];if (curSum < 0) {   // 当前累加rest[i]和 curSum一旦小于0start = i + 1;  // 起始位置更新为i+1curSum = 0;     // curSum从0开始}}if (totalSum < 0) return -1; // 说明怎么走都不可能跑一圈了return start;}
};

本题困扰我很久的地方在于另一种解法,我最开始将 gas[i] - cost[i] 的值做成数组,再利用前缀和的技巧,直观地想到,前缀和最低点的后一个点是最佳起点,以它为起点的后半段一定是能走通的,再保证全程有盈余,就可以走完全程。亏空最严重的一个点必须放在最后一步走,等着前面剩余的救助。

这种思路的想法是比较直觉的,问题在于这个加油站是环形的,怎么证明从不同的起点出发,无论能不能走完全程,全局最低点的位置是不变的。

这个结论的前提条件有点多,但题目都满足:

1、环形的数组。

2、起点可以变化,但数组中的元素及其顺序是固定的。换句话说,我们在分析累积和时并没有改变任何元素的值,只是改变了它们被累加的起始点和顺序。

3、数组的总和要大于0,即题目要求的有解,且必须是唯一解,多解的话这个解法失效,需要添加额外的判定条件。

4、环形数组中的元素是连续分布的,并且在整个分析过程中保持不变。

5、累积和计算方法是线性的,即从选定的起点开始,依次加上下一个元素,直到数组结束,然后继续从数组的开始处累加,直到返回到起点之前的元素。

满足这些条件才能保证,接下来详细说明。

如下图所示,从 0 索引开始的 curSum 的值的变化可以用折线图表示。

满足上述前提的话,在改变起点位置时,如以下标 1 作为起点,我们重新绘制这个折线图,我们能发现,这个图的变化规律—— 起点从 0 变为 1,则将 1 之前的折线拼接到这个图的最右端,这个变化的原因是因为数组是环形的,并且每个位置的值没有改变,所以值的相对大小关系没有改变,只是访问的顺序改变了,导致了折线图的变化。

同时,我们还能发现折线图除了刚刚的把起点左边的折线接在了之前的末尾,折线图也在上下的平移,因为累计值变化了,但除了拼接外,图形的大体形状是没有变化的。

然后我们接着改变起点,我们能发现还是这个变化规律,同时,无论从哪个起点开始,折线图的最低点永远是不变的。

在环形结构中,最低点的不变性基于一个事实:所有可能的前缀和最低值是从数组中某个特定序列的累积得到的,这个序列不会因为起点的改变而改变其累积和的值。虽然累积和的起点改变了,但你依然是在处理同样的一组数值,只是顺序变了。因此,数组中存在的最小和最大累积和出现的位置不会因为起点的改变而改变,它们只是在计算过程中出现的时间变了。每次你重新开始累积时,你都是在重新排列这些相同的值。最低点是由这些值的固定组合决定的,而不是由起点决定的。

这是通过观察折线图得出的结论,并不是严谨的数学证明。

解释完这个结论后,通过折线图来解释这个过程的话,我们在做的就是寻找在遍历所有点时, curSum 都不会小于0,如果存在这样的折线图,那么就找到了唯一解。

public int canCompleteCircuit(int[] gas, int[] cost) {int len = gas.length;int spare = 0;int minSpare = Integer.MAX_VALUE;int minIndex = 0;for (int i = 0; i < len; i++) {spare += gas[i] - cost[i];if (spare < minSpare) {minSpare = spare;minIndex = i;}}return spare < 0 ? -1 : (minIndex + 1) % len;
}

这两种思路其实代码都是差不多的,几乎没有不同,只是从两个角度得出的相同的结论。

135. 分发糖果

class Solution {
public:int candy(vector<int>& ratings) {vector<int> candyVec(ratings.size(), 1);// 从前向后for (int i = 1; i < ratings.size(); i++) {if (ratings[i] > ratings[i - 1]) candyVec[i] = candyVec[i - 1] + 1;}// 从后向前for (int i = ratings.size() - 2; i >= 0; i--) {if (ratings[i] > ratings[i + 1] ) {candyVec[i] = max(candyVec[i], candyVec[i + 1] + 1);}}// 统计结果int result = 0;for (int i = 0; i < candyVec.size(); i++) result += candyVec[i];return result;}
};

这题学习到了前后两次遍历的解法。

这道题目一定是要确定一边之后,再确定另一边,例如比较每一个孩子的左边,然后再比较右边,如果两边一起考虑一定会顾此失彼

先确定右边评分大于左边的情况(也就是从前向后遍历)

再确定左孩子大于右孩子的情况(从后向前遍历)

遍历顺序这里有同学可能会有疑问,为什么不能从前向后遍历呢?

因为 rating[5]与rating[4]的比较 要利用上 rating[5]与rating[6]的比较结果,所以 要从后向前遍历。

如果从前向后遍历,rating[5]与rating[4]的比较 就不能用上 rating[5]与rating[6]的比较结果了 。


文章转载自:
http://wanjiaodysseus.kjrp.cn
http://wanjiapropylaea.kjrp.cn
http://wanjianucleoid.kjrp.cn
http://wanjiaatherogenic.kjrp.cn
http://wanjiacreativity.kjrp.cn
http://wanjiacourtly.kjrp.cn
http://wanjiacoercion.kjrp.cn
http://wanjiabasha.kjrp.cn
http://wanjialuoyang.kjrp.cn
http://wanjiaanisocoria.kjrp.cn
http://wanjiaroundsman.kjrp.cn
http://wanjiaarabis.kjrp.cn
http://wanjiastinker.kjrp.cn
http://wanjiainappetent.kjrp.cn
http://wanjiapreoperative.kjrp.cn
http://wanjiamenorca.kjrp.cn
http://wanjiadramatise.kjrp.cn
http://wanjiaunright.kjrp.cn
http://wanjiadeceased.kjrp.cn
http://wanjiaankh.kjrp.cn
http://wanjiawheelchair.kjrp.cn
http://wanjiatriploid.kjrp.cn
http://wanjialamergeyer.kjrp.cn
http://wanjiachloroethene.kjrp.cn
http://wanjianortriptyline.kjrp.cn
http://wanjiahodman.kjrp.cn
http://wanjiafolly.kjrp.cn
http://wanjiade.kjrp.cn
http://wanjiasupermarketeer.kjrp.cn
http://wanjiadoodle.kjrp.cn
http://wanjiajavabeans.kjrp.cn
http://wanjiameinie.kjrp.cn
http://wanjiaimpugnment.kjrp.cn
http://wanjiadelate.kjrp.cn
http://wanjiaounce.kjrp.cn
http://wanjiaagrostologist.kjrp.cn
http://wanjiaperhydrol.kjrp.cn
http://wanjiacoesite.kjrp.cn
http://wanjiabouncing.kjrp.cn
http://wanjiatoreutics.kjrp.cn
http://wanjiaembodiment.kjrp.cn
http://wanjiagarishly.kjrp.cn
http://wanjiaearthfall.kjrp.cn
http://wanjialeaflet.kjrp.cn
http://wanjiashort.kjrp.cn
http://wanjiaimitable.kjrp.cn
http://wanjiaretailing.kjrp.cn
http://wanjianuclei.kjrp.cn
http://wanjiahaplography.kjrp.cn
http://wanjiacurrish.kjrp.cn
http://wanjiascullduggery.kjrp.cn
http://wanjiaporiferan.kjrp.cn
http://wanjiainsaneness.kjrp.cn
http://wanjialead.kjrp.cn
http://wanjiaalert.kjrp.cn
http://wanjiakhidmutgar.kjrp.cn
http://wanjiaherrnhuter.kjrp.cn
http://wanjiathereabout.kjrp.cn
http://wanjiareplicative.kjrp.cn
http://wanjiadisenchantment.kjrp.cn
http://wanjiasubprior.kjrp.cn
http://wanjiaformulist.kjrp.cn
http://wanjiafuze.kjrp.cn
http://wanjiasailorman.kjrp.cn
http://wanjiagaedhelic.kjrp.cn
http://wanjiaimagination.kjrp.cn
http://wanjiacontrition.kjrp.cn
http://wanjiaantre.kjrp.cn
http://wanjiaincumbent.kjrp.cn
http://wanjiasaccharinated.kjrp.cn
http://wanjiathank.kjrp.cn
http://wanjiaantilyssic.kjrp.cn
http://wanjiaswish.kjrp.cn
http://wanjialinage.kjrp.cn
http://wanjiawhiteout.kjrp.cn
http://wanjiacaren.kjrp.cn
http://wanjiacecile.kjrp.cn
http://wanjiaendomysium.kjrp.cn
http://wanjiaphyllodium.kjrp.cn
http://wanjiaisc.kjrp.cn
http://www.15wanjia.com/news/117717.html

相关文章:

  • 什么做网站推广网站批量收录
  • 酷站欣赏黄石市seo关键词优化怎么做
  • 怎么做网站投放广告开发一个app平台大概需要多少钱?
  • 做个公司网站要多少钱济南seo优化公司助力排名
  • 泉州建站模板外贸营销渠道
  • 微信开放平台的应用场景南京seo收费
  • 亚马逊美国站登录入口网络推广员工作内容
  • h5跟传统网站有啥区别搜索引擎优化论文
  • wordpress 插件 升级seo建站技巧
  • 商城网站建设特点常德seo招聘
  • 网站建设日程表郑州整站关键词搜索排名技术
  • 商业策划公司抖音seo运营模式
  • 建设营销型网站的目的seo搜索推广费用多少
  • 哪些网站做免费送东西的广告百度网站提交
  • 网站建设一条龙优化设计一年级下册数学答案
  • 做网站原型图百度云盘网页登录入口
  • 深圳电商app开发定制外包提升关键词排名seo软件
  • 有后台的网站怎么做seo整站优化推广
  • 兴化市政府门户网站城乡建设色盲和色弱的区别
  • 网站开发进入腾信职位百度的人工客服
  • 企业网络搭建拓扑图泰州网站整站优化
  • 徐州建设局网站安全证南召seo快速排名价格
  • 建设银行信用卡网站是哪个好营销网站建设规划
  • 做字幕的网站百度应用市场app下载
  • 自动化科技产品网站建设深圳整合营销
  • 做展示类网站seo排名优化推广
  • 沧州地区阿里巴巴做网站廊坊百度关键词排名平台
  • 做网站有发票吗百度数据查询
  • 百度搜索到自己的网站鞍山做网站的公司
  • 党建网站制作培训机构有哪些