该算法 IS NOT ORIGINAL. PROBABLLY TRANSFORMED FROM OTHER LANGUAGE
NOT EASY USING CHINESE WITH ONLY MOBILE TO EDIT JUEJIN ARTICLE.
/**
- @param {number[]} gas
- @param {number[]} cost
- @return {number} */ var canCompleteCircuit = function(gas, cost) { let candidate = []; let len = gas.length; if(gas.length < 1){ return -1; } if(gas.length === 1){ if(gas[0] >= cost[0]){ return 0; } return -1; } for(let i = 0; i < len; ++i){ if(gas[i] >= cost[i]){ candidate.push(i); } } for(let i = 0; i < candidate.length; ++i){ let count = candidate[i]; let res = gas[count] - cost[count]; let fail = false; while((++count % len) !== candidate[i]){ count %= len; res = res + gas[count] - cost[count]; if(res < 0){ fail = true; break; } } if(!fail){ return candidate[i]; } } return -1; };