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

广州市住房城乡建设部门户网站启航做网站好吗

广州市住房城乡建设部门户网站,启航做网站好吗,免费模板建站网站,外包服务平台题目#xff1a; 链接#xff1a;LeetCode 134. 加油站 难度#xff1a;中等 在一条环路上有 n 个加油站#xff0c;其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车#xff0c;从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中…题目 链接LeetCode 134. 加油站 难度中等 在一条环路上有 n 个加油站其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车从第 i 个加油站开往第 i1 个加油站需要消耗汽油 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 ncost.length n1 n 1050 gas[i], cost[i] 104 方法一 函数图像法 sum 代表路途中油箱的油量如果把这个「最低点」作为起点即把这个点作为坐标轴原点就相当于把图像「最大限度」向上平移了 如果经过平移后图像全部在 x 轴以上就说明可以行使一周。 代码一 class Solution { public:int canCompleteCircuit(vectorint gas, vectorint 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(vectorint gas, vectorint 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]; //行至第j1个加油站时油箱内的油量if(sum 0) {if(j 1 n) return -1; //全部出发点已遍历完未找到可行解i (j 1) % n; //无法从第i站到第j1站则从中间任意一站都无法到第j1站。那么以第j1站为出发站继续检查flag false;break;}}if(flag) return i; //以第i站为出发站可以走完一周返回i}return -1;} };时间复杂度O(n)空间复杂度O(1)。
http://www.dnsts.com.cn/news/44881.html

相关文章:

  • 廊坊网站seo服务wordpress 点赞代码
  • 网站不备案可以做百度推广吗建网站空间可以不买
  • 为什么要建设应急管理网站网站建设工作半年通报
  • 可以建设网站的公司小程序账号申请
  • 旅游网站建设策划方案书wordpress附件下载失败
  • 江苏新站优化衡水企业网站设计报价
  • 开发做游戏的网站wordpress 主题窜改
  • 深喉咙企业网站帮助哈尔滨vi设计公司
  • 做网站需要要多少钱深圳福田公司有哪些
  • 做网站推广优化哪家好哈尔滨网站建设排
  • 企业网站优化暴肃湖南岚鸿很好WordPress询盘
  • 网站建设的标签指的是有什么网站可以做微信
  • 网站建设设计设计网页设计教程课本课后题答案
  • 八宿县网站seo优化排名搜索引擎推广的基本方法
  • 一站式网站建设设计中核集团为什么排央企第一名
  • 怒江州住房和城乡建设部网站西安seo引擎搜索优化
  • 建设论坛网站需要做什么的自己做网站需要学什么软件
  • 宁波网络建站公司xmlrpc wordpress
  • 礼品网站制作网站 建设的必要性
  • 怎样能注册自己的网站重庆喷绘制作
  • 郑州市网站建设公司华为网站建设费用
  • 调查网站怎么做seo是怎么优化上去
  • 用备案的网站做违法网站虚拟主机网站被挂马
  • 服务态度 专业的网站建设wordpress开发文档
  • 有什么好的网站建设的书网站建设服务要交印花税吗
  • 做直播平台网站赚钱吗上海市住房与城乡建设部网站
  • 用wordpress建立学校网站张掖响应式建站平台
  • 福建住房和城乡建设部网站泉州模板建站哪家好
  • 网站关闭模板怎么自己创建网页
  • 什么是网站开发技术天河网站建设平台