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

申请建设网站的请示谷歌seo是做什么的

申请建设网站的请示,谷歌seo是做什么的,公司形象墙设计理念,网站的缺点有哪些题目: 链接:LeetCode 134. 加油站 难度:中等 在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中…

题目:

链接:LeetCode 134. 加油站
难度:中等

在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。

你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。

给定两个整数数组 gas 和 cost ,如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1 。如果存在解,则 保证 它是 唯一 的。

示例 1:

输入: gas = [1,2,3,4,5], cost = [3,4,5,1,2]
输出: 3
解释:
从 3 号加油站(索引为 3 处)出发,可获得 4 升汽油。此时油箱有 = 0 + 4 = 4 升汽油
开往 4 号加油站,此时油箱有 4 - 1 + 5 = 8 升汽油
开往 0 号加油站,此时油箱有 8 - 2 + 1 = 7 升汽油
开往 1 号加油站,此时油箱有 7 - 3 + 2 = 6 升汽油
开往 2 号加油站,此时油箱有 6 - 4 + 3 = 5 升汽油
开往 3 号加油站,你需要消耗 5 升汽油,正好足够你返回到 3 号加油站。
因此,3 可为起始索引。

示例 2:

输入: gas = [2,3,4], cost = [3,4,3]
输出: -1
解释:
你不能从 0 号或 1 号加油站出发,因为没有足够的汽油可以让你行驶到下一个加油站。
我们从 2 号加油站出发,可以获得 4 升汽油。 此时油箱有 = 0 + 4 = 4 升汽油
开往 0 号加油站,此时油箱有 4 - 3 + 2 = 3 升汽油
开往 1 号加油站,此时油箱有 3 - 3 + 3 = 3 升汽油
你无法返回 2 号加油站,因为返程需要消耗 4 升汽油,但是你的油箱只有 3 升汽油。
因此,无论怎样,你都不可能绕环路行驶一周。

提示:

  • gas.length == n
  • cost.length == n
  • 1 <= n <= 105
  • 0 <= gas[i], cost[i] <= 104

方法一:

函数图像法:

在这里插入图片描述
sum 代表路途中油箱的油量,如果把这个「最低点」作为起点,即把这个点作为坐标轴原点,就相当于把图像「最大限度」向上平移了:
在这里插入图片描述
如果经过平移后图像全部在 x 轴以上,就说明可以行使一周。

代码一:

class Solution {
public:int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {int n = gas.size();int minsum = 0, minpos = 0; //函数最低点的值,函数最低点的坐标(出发站编号)int sum = 0;for(int i = 0; i < n; i++){sum += gas[i] - cost[i];if(sum < minsum) {minsum = sum;minpos = i + 1;}}if(sum < 0) return -1;return minpos % n;}
};

时间复杂度O(n),空间复杂度O(1)。

方法二:

贪心解法:

用贪心思路解决这道题的关键在于以下这个结论:

如果选择站点i作为起点「恰好」无法走到站点j,那么i和j中间的任意站点k都不可能作为起点。

比如说,如果从站点1出发,走到站点5时油箱中的油量「恰好」减到了负数,那么说明站点1「恰好」无法到达站点5;那么你从站点2,3,4任意一个站点出发都无法到达5,因为到达站点5时油箱的油量也必然被减到负数。

如何证明这个结论?

假设sum记录当前油箱中的油量,如果从站点i出发(sum = 0),走到j时恰好出现sum < 0的情况,那说明走到i, j之间的任意站点k时都满足sum > 0,对吧。

如果把k作为起点的话,相当于在站点k时sum = 0,那走到j时必然有sum < 0,也就是说k肯定不能是起点。

拜托,从i出发走到k好歹sum > 0,都无法达到j,现在你还让sum = 0了,那更不可能走到j了对吧。

综上,这个结论就被证明了。

回想一下我们开头说的暴力解法是怎么做的?

如果我发现从i出发无法走到j,那么显然i不可能是起点。

现在,我们发现了一个新规律,可以推导出什么?

如果我发现从i出发无法走到j,那么i以及i, j之间的所有站点都不可能作为起点。

看到冗余计算了吗?看到优化的点了吗?

这就是贪心思路的本质,如果找不到重复计算,那就通过问题中一些隐藏较深的规律,来减少冗余计算。

代码二:

class Solution {
public:int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {int n = gas.size();for(int i = 0; i < n;){int sum = 0;bool flag = true; //以i为出发站时能否环行一周for(int j = i; j < i + n; j++){sum += gas[j % n] - cost[j % n]; //行至第j+1个加油站时,油箱内的油量if(sum < 0) {if(j + 1 >= n) return -1; //全部出发点已遍历完,未找到可行解i = (j + 1) % n; //无法从第i站到第j+1站,则从中间任意一站都无法到第j+1站。那么以第j+1站为出发站继续检查flag = false;break;}}if(flag) return i; //以第i站为出发站可以走完一周,返回i}return -1;}
};

时间复杂度O(n),空间复杂度O(1)。

http://www.dinnco.com/news/31194.html

相关文章:

  • 江西赣州市优化网站结构一般包括
  • 做门窗生意进哪个网站职业培训机构
  • 网站开发制作合同如何进行网站推广?网站推广的基本手段有哪些
  • 没网站怎么做二维码扫描连接北京网站建设制作开发
  • 网络营销职能是什么免费seo关键词优化排名
  • 台州做网站的电话百度地图关键词优化
  • ps做网站效果图制作过程汕头seo托管
  • 室内设计知名网站东莞网站seo技术
  • 网站建设注意什么plc培训机构哪家最好
  • 广东省企网站建设广东培训seo
  • 网站建设美工招聘长春网站制作计划
  • 做网站的是如何赚钱的陕西seo关键词优化外包
  • 网站开发常用框架外贸是做什么的
  • 义乌网站制作网站搜索排名优化怎么做
  • pc 手机网站建设百度网址大全网址导航
  • 个人经营性网站备案seo蜘蛛屯
  • .htaccess 伪静态 wordpress互联网seo是什么意思
  • 哪个新闻网站做代理网站流量统计系统
  • 建设企业网站官网下载中心seo和sem的区别与联系
  • 个人 建设图片分享网站醴陵网站制作
  • php网站开发技术销售人员培训课程有哪些
  • 关于自己公司的网站怎么做进一步优化营商环境
  • 厦门网站设计公司找哪家百度app下载官方
  • 南通做网站多少钱南昌seo优化
  • asp.net网站开发个人免费域名注册网站
  • ueeshop建站靠谱吗想要网站推广版
  • 深圳网站建设外贸公司价格seo网络推广
  • 大厂县建设局网站漯河seo公司
  • 原平的旅游网站怎么做的深圳大鹏新区葵涌街道
  • 应届毕业生招聘官网苏州seo按天扣费