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

做网站加手机app需要多少钱asp.net 如何设置网站首页

做网站加手机app需要多少钱,asp.net 如何设置网站首页,免费网站入口,中国采购与招标网官网在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。给定两个整数数组 gas 和 cost &…

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

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

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

我觉得我的思路很笨 就是找到第一个可以往下走的 如果可以顺利的话 那么就OK 如果不顺利 那么就继续往下找 因为解是唯一的 所以只要找到直接return就行 虽然不确定是不是会超过时间限制 但是还是先试一下

我的大体思路就是:我往下找 找到第一个满足的 就开始计算步数和余量 只要往下走就往下走 步数要走到n才行  计算此时的索引就使用取模的方法 如果到了什么时候rem<0 那么就break 不然就step+=1 如果等于n了 那么就return i (反正要么就是while结束了 要么就是break了) 如果并没有return i 那么就证明是这个不行 那要继续往下选择

那么重点来了 我要使用i+1吗?显然不是 因为我走了step步之后无法走下去 那么选择i和i+step中间的是可以保证走下去的吗?

跳过失败路径中的所有站点是贪心算法的关键优化点之一,它能将时间复杂度从 O(n²) 降到 O(n)。这不是因为“某一步负数太多”,而是因为整个路径的净收益是负的,意味着从任何子起点都无法完成一圈。所以继续进行的就是i+step+1

但是我领会到其中的奥妙了 你想啊 我从中间的出发 根本到不了下一步 为什么? 我既然是走到这步才停 证明是因为前面的是有剩余的 到我这步又亏损了 亏损大了 才到不了 那你可能会觉得 诶 那我从亏损超级大的那一步往下走到不了吗?你想啊 你既然是从亏损超级大的那一步往下走 既然可以往下走 就证明有剩余 有剩余都走不到这个step步 那中间的哪一个都不行(因为要想到达中间的某一步 任何一步 都是要有结余的 有结余还不行 那么我从头开始更不行)我少了前面的补贴 还要面对后面的亏损 达咩达咩

好的来看代码

class Solution(object):def canCompleteCircuit(self, gas, cost):i=0index=-1n=len(gas)while i <n:#如果当前的汽油不够消耗到下一步的 就继续往下找if gas[i]<cost[i]:i+=1continue#如果找到了这一个gas = [1,2,3,4,5], cost = [3,4,5,1,2]#现在是索引为3的地方 那么要是继续往下走 就要满足gas-cost+gas>=cost#计算剩余量和步数rem=0step=0while step<n:j = (i + step) % nrem += gas[j] - cost[j]if rem < 0:breakstep += 1if step==n:return i#证明这个i是不行的 那么我是需要走i+1的这一步的吗?#不是的 因为我从i开始可以的 证明我i这步是有盈余的 既然走到这步不行了#那么就证明无论我从中间的哪一步开始 走到这步肯定都不行了 所以要跨过step这个步骤开始else:i=step+i+1return -1
solution=Solution()
result=solution.canCompleteCircuit([2,3,4], [3,4,3])
print(result)

但是这个运行速度只超过百分之三十多 所以我们来分析一下排名第一的代码

首先就是计算总和 如果消耗总和大于油量总和 那直接不行 

然后就是直接计算盈余 一旦盈余小于0 改变开始的索引? 感觉这个for循环写的还是挺深奥的 如果小于0的话 证明这个起点不行 那么是尝试下一个这个我明白 但是为什么直接每个点开始计算结余呢?从第一个点开始 如果这个剩余小于0 那这个点不行 使用i+1这个点 如果是大于0的 那么这个点就不变 i继续往下走 在这个过程中 只要这个剩余小于0 就证明这个包括这个中间的点都是不行的 (看我上面的解释) 喵喵喵啊

class Solution(object):def canCompleteCircuit(self, gas, cost):""":type gas: List[int]:type cost: List[int]:rtype: int"""if sum(gas) < sum(cost):return -1cursum = 0start_idx = 0for i in range(len(gas)):cursum += gas[i] - cost[i]if cursum < 0:start_idx = i + 1cursum = 0return start_idx

如果喜欢这个帖子 欢迎点赞收藏!

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

相关文章:

  • 网站icp备案信息有没有catia做幕墙的网站
  • 汕头网站建设制作公司花都区pc端网站建设
  • 青岛手机网站建设电话佛山建设企业网站
  • 越秀网站建设策划淘宝网网页
  • 网站标准尺寸哪些网站有友情链接
  • 江门市网站建设 熊掌号张店学校网站建设哪家好
  • 电子商务网站的建设视频佛山注册公司无需地址
  • 叶榭网站建设wordpress 文章分享
  • 网站建设和网站设计区别山东网站建设软件
  • 深圳搜索引擎优化收费网站seo的推广计划
  • 如何制作手机网站信阳网络推广公司
  • 做网站域名自己弄个人建设网站教程
  • 手机移动端网站建设网站制作 牛商网 岳阳 公司
  • 2017优秀网站设计欣赏wordpress 密码在哪文件
  • vs做网站连数据库兴安网站建设
  • 哈尔滨建设网站公司吗seo 百度网盘
  • 做ppt音乐模板下载网站网站官网
  • 青岛网站建设套餐报价廉洁常德网站
  • 做网站需要流程宁波海曙区建设局网站
  • 网站后台的搭建徐州做网站沈阳厂商
  • 坡头手机网站建设网络营销推广建议
  • 确保网站地址没有做301跳转室内设计者联盟网
  • 免费php网站开发模板网页制作处理软件中的三剑客是指
  • 南宁网站空间flash网站模板下载
  • 05网站招远做网站价格
  • 外贸出口平台网站wordpress 多少张表
  • 网站建设和网络优化临淄信息网123
  • 企业网站建设方案ppt销售网站有哪些
  • 廊坊做网站外包苏州出名的网站公司
  • php 爬取网站所有链接猪八戒网站建设