Progress
0% complete
Two Sum
Best Time to Buy and Sell Stock
Majority Element
Contains Duplicate
Move Zeroes
Squares of a Sorted Array
Valid Palindrome
Valid Anagram
Longest Palindrome
Longest Common Prefix
Ransom Note
Valid Parentheses
Implement Queue using Stacks
Backspace String Compare
Merge Two Sorted Lists
Linked List Cycle
Reverse Linked List
Middle of the Linked List
Palindrome Linked List
Invert Binary Tree
Balanced Binary Tree
Diameter of Binary Tree
Maximum Depth of Binary Tree
Same Tree
Symmetric Tree
Subtree of Another Tree
Lowest Common Ancestor of a Binary Search Tree
Convert Sorted Array to Binary Search Tree
Binary Search
First Bad Version
Flood Fill
01 Matrix
Climbing Stairs
Maximum Subarray
Set Matrix Zeroes
Spiral Matrix
Rotate Image
Valid Sudoku
Subsets
Permutations
Meeting Rooms
Insert Interval
Merge Intervals
3Sum
Product of Array Except Self
Combination Sum
Sort Colors
Container With Most Water
Rotate Array
Contiguous Array
Subarray Sum Equals K
Longest Substring Without Repeating Characters
String to Integer (atoi)
Longest Palindromic Substring
Find All Anagrams in a String
Group Anagrams
Longest Repeating Character Replacement
Largest Number
Encode and Decode Strings
Evaluate Reverse Polish Notation
Min Stack
Daily Temperatures
Decode String
Asteroid Collision
Basic Calculator II
LRU Cache
Remove Nth Node From End of List
Swap Nodes in Pairs
Odd Even Linked List
Add Two Numbers
Sort List
Reorder List
Rotate List
Binary Tree Level Order Traversal
Lowest Common Ancestor of a Binary Tree
Binary Tree Right Side View
Construct Binary Tree from Preorder and Inorder Traversal
Path Sum II
Maximum Width of Binary Tree
Binary Tree Zigzag Level Order Traversal
Path Sum III
Validate Binary Search Tree
Kth Smallest Element in a BST
Inorder Successor in BST
Search in Rotated Sorted Array
Time Based Key-Value Store
Search a 2D Matrix
Find Minimum in Rotated Sorted Array
Clone Graph
Course Schedule
Number of Islands
Rotting Oranges
Accounts Merge
Word Search
Minimum Height Trees
Pacific Atlantic Water Flow
Coin Change
Unique Paths
House Robber
Jump Game
Gas Station
Longest Consecutive Sequence
Meeting Rooms II
3Sum Closest
Non-overlapping Intervals
Partition Equal Subset Sum
Maximum Product Subarray
Longest Increasing Subsequence
Maximal Square
Decode Ways
Combination Sum IV
K Closest Points to Origin
Task Scheduler
Top K Frequent Words
Find K Closest Elements
Kth Largest Element in an Array
Implement Trie (Prefix Tree)
Word Break
Design Add and Search Words Data Structure
Shortest Path to Get Food
Graph Valid Tree
Course Schedule II
Number of Connected Components in an Undirected Graph
Minimum Knight Moves
Cheapest Flights Within K Stops
Insert Delete GetRandom O(1)
Letter Combinations of a Phone Number
Next Permutation
Generate Parentheses
Design Hit Counter
All Nodes Distance K in Binary Tree
Word Ladder
Longest Increasing Path in a Matrix
Trapping Rain Water
Find Median from Data Stream
Merge k Sorted Lists
Minimum Window Substring
Maximum Profit in Job Scheduling
Design In-Memory File System
Serialize and Deserialize Binary Tree
Employee Free Time
Sliding Window Maximum
Basic Calculator
Largest Rectangle in Histogram
Maximum Frequency Stack
Longest Valid Parentheses
Reverse Nodes in k-Group
Palindrome Pairs
Binary Tree Maximum Path Sum
Median of Two Sorted Arrays
Word Search II
Alien Dictionary
Bus Routes
First Missing Positive
Smallest Range Covering Elements from K Lists
N-Queens
Sudoku Solver

Gas Station

medium

There are n gas stations along a circular route, where the amount of gas at the ith station is gas[i].

You have a car with an unlimited gas tank and it costs cost[i] of gas to travel from the ith station to its next (i + 1)th station. You begin the journey with an empty tank at one of the gas stations.

Given two integer arrays gas and cost, return the starting gas station's index if you can travel around the circuit once in the clockwise direction, otherwise return -1. If there exists a solution, it is guaranteed to be unique.

 

Example 1:

Input: gas = [1,2,3,4,5], cost = [3,4,5,1,2]
Output: 3
Explanation:
Start at station 3 (index 3) and fill up with 4 unit of gas. Your tank = 0 + 4 = 4
Travel to station 4. Your tank = 4 - 1 + 5 = 8
Travel to station 0. Your tank = 8 - 2 + 1 = 7
Travel to station 1. Your tank = 7 - 3 + 2 = 6
Travel to station 2. Your tank = 6 - 4 + 3 = 5
Travel to station 3. The cost is 5. Your gas is just enough to travel back to station 3.
Therefore, return 3 as the starting index.

Example 2:

Input: gas = [2,3,4], cost = [3,4,3]
Output: -1
Explanation:
You can't start at station 0 or 1, as there is not enough gas to travel to the next station.
Let's start at station 2 and fill up with 4 unit of gas. Your tank = 0 + 4 = 4
Travel to station 0. Your tank = 4 - 3 + 2 = 3
Travel to station 1. Your tank = 3 - 3 + 3 = 3
You cannot travel back to station 2, as it requires 4 unit of gas but you only have 3.
Therefore, you can't travel around the circuit once no matter where you start.

 

Constraints:

  • n == gas.length == cost.length
  • 1 <= n <= 105
  • 0 <= gas[i], cost[i] <= 104
  • The input is generated such that the answer is unique.
Loading editor…