Gas Station

来源:互联网 发布:双十一前淘宝生意差 编辑:程序博客网 时间:2024/06/06 07:18

Notes:

每一站的代价和gas-station;

要知道,只要所有站的代价和大于0,就一定存在一条满足这样条件的路径;

那么接下来要做的就是求得初始点:

如果总代价〉=0,从序号0开始求代价和,如果代价和小于0,则不是从本站或者本站之前的某一个代价大于0的站开始(即说明从本站之前的站点开始是不合理的),必从下一站即之后的站开始,置sum = 0,重新开始计算,而且这样的站必定存在O(n)


public class Solution {     public int canCompleteCircuit(int[] gas, int[] cost) {                int sum = 0;      int total = 0;      int start = 0;      for (int i = 0; i < cost.length; i++) {sum += gas[i] - cost[i];total += gas[i] - cost[i];if(sum < 0){start = (i + 1)%cost.length;sum = 0;}}      if(total < 0){      return -1;      }      else {return start;}      }}


0 0
原创粉丝点击