zoukankan      html  css  js  c++  java
  • LeetCode---Gas Station

    明知道明早要考试,可还是忍不住打开电脑想水一题。不过还是在这题上WA了好几次....看见自己有多渣!

    有个道理发现了很久,直到今天才意识到它的严重性,反复的做题只能让你不断的巩固已有的知识,而对于

    新知识的探索是少只又少,所以必须要通过多读书来获取新的知识,这样才能够扩充知识面。而之前的我就

    是忽略了读书,我的想法是:也许通过做题会发现一些新的东西呢! 但事实证明,此举效率极低。

    以此警示自己:多读书!

    本题为贪心思想。

    附上代码:

     1 class Solution {
     2 public:
     3     int canCompleteCircuit(vector<int> &gas, vector<int> &cost) {
     4         // length of vector
     5         unsigned int n = gas.size();
     6         // sum[i] keeps the value of 0...i
     7         vector<int> tmp((n<<1) + 5);
     8         
     9         for (unsigned int i = 0; i < n; i++) {
    10             tmp[i] = tmp[i+n] = (gas[i] - cost[i]);
    11         }
    12         for (unsigned int i = 1; i < (n<<1); i++) {
    13             tmp[i] += tmp[i-1];
    14         }
    15 
    16         // cnt: count the continous number of tmp[i] where tmp[i] >= 0
    17         // beg: the begining index of the cnt continous numbers
    18         int cnt = 0, beg = 0;
    19         for (unsigned int i = 0; i < (n<<1); i++) {
    20             // pay attention... f keeps the value of tmp[beg-1]
    21             int f = beg == 0 ? 0 : tmp[beg-1];
    22             if (tmp[i] - f >= 0) {
    23                 if (cnt == 0) {
    24                     beg = i;
    25                 }
    26                 cnt++;
    27             } else {
    28                 cnt = 0;
    29                 beg = i + 1;
    30             }
    31             if (cnt >= n) {
    32                 return beg;
    33             }
    34         }
    35         return -1;
    36     }
    37 };
  • 相关阅读:
    老周的ABP框架系列教程 -》 一、框架理论初步学习
    poi读写Excel记录
    get 和 post 请求的区别,一个不错的链接
    PostgreSQL的WAL日志概述与Full-Page Writes
    linux挂载硬盘到home目录下(home目录扩容)
    高可用的恢复点目标(RPO)和恢复时间目标(RTO)
    iscsi常用命令汇总
    如何同步linux集群时间
    内部类
    抽象和继承
  • 原文地址:https://www.cnblogs.com/Stomach-ache/p/3705394.html
Copyright © 2011-2022 走看看