added canCompleteCircuit
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
#include <vector>
|
||||
|
||||
inline int canCompleteCircuit(std::vector<int> &gas, std::vector<int> &cost) {
|
||||
int total_tank = 0;
|
||||
int curr_tank = 0;
|
||||
int start = 0;
|
||||
for (int i = 0; i < int(gas.size()); i++) {
|
||||
total_tank += gas[i] - cost[i];
|
||||
curr_tank += gas[i] - cost[i];
|
||||
if (curr_tank < 0) {
|
||||
start = i + 1;
|
||||
curr_tank = 0;
|
||||
}
|
||||
}
|
||||
return total_tank >= 0 ? start : -1;
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
#include <cassert>
|
||||
#include <vector>
|
||||
#include "canCompleteCircuit.hpp"
|
||||
|
||||
int main() {
|
||||
std::vector<int> gas = {1, 2, 3, 4, 5};
|
||||
std::vector<int> cost = {3, 4, 5, 1, 2};
|
||||
int output = canCompleteCircuit(gas, cost);
|
||||
assert(output == 3);
|
||||
|
||||
gas = {2, 3, 4};
|
||||
cost = {3, 4, 3};
|
||||
output = canCompleteCircuit(gas, cost);
|
||||
assert(output == -1);
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user