Skip to content

Commit 6f6eeca

Browse files
committedNov 5, 2023
feat: add solution for gas station
1 parent 0282a3b commit 6f6eeca

File tree

3 files changed

+31
-2
lines changed

3 files changed

+31
-2
lines changed
 

‎src/medium/gas_station.rs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#![allow(dead_code)]
2+
pub fn can_complete_circuit(gas: Vec<i32>, cost: Vec<i32>) -> i32 {
3+
if gas.iter().sum::<i32>() < cost.iter().sum::<i32>() {
4+
return -1;
5+
}
6+
7+
let mut cur_sum = 0;
8+
let mut res = 0;
9+
for i in 0..gas.len() {
10+
cur_sum += gas[i] - cost[i];
11+
if cur_sum < 0 {
12+
cur_sum = 0;
13+
res = i + 1;
14+
}
15+
}
16+
17+
res as i32
18+
}
19+
20+
#[test]
21+
fn test_can_complete_circuit() {
22+
let gas = vec![1, 2, 3, 4, 5];
23+
let cost = vec![3, 4, 5, 1, 2];
24+
assert_eq!(can_complete_circuit(gas, cost), 3);
25+
26+
let gas = vec![2, 3, 4];
27+
let cost = vec![3, 4, 3];
28+
assert_eq!(can_complete_circuit(gas, cost), -1);
29+
}

‎src/readme.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@
7676
- [x] [130. Surrounded regions](../src/medium/surrounded_regions.rs) -> [Problem Description](../src/medium/readme.md#130-surrounded-regions)
7777
- [x] [131. Palindrome partitioning](../src/medium/palindrome_partitioning.rs) -> [Problem Description](../src/medium/readme.md#131-palindrome-partitioning)
7878
- [x] [133. Clone graph](../src/medium/clone_graph.rs) -> [Problem Description](../src/medium/readme.md#133-clone-graph)
79-
- [ ] [134. Gas station](../src/medium/gas_station.rs) -> [Problem Description](../src/medium/readme.md#134-gas-station)
79+
- [x] [134. Gas station](../src/medium/gas_station.rs) -> [Problem Description](../src/medium/readme.md#134-gas-station)
8080
- [x] [138. Copy list with random pointer PYTHON Solution](../alternative/medium/copy_list_with_random_pointer.py) -> [Problem Description](../src/medium/readme.md#138-copy-list-with-random-pointer)
8181
- [x] [139. Word break](../src/medium/word_break.rs) -> [Problem Description](../src/medium/readme.md#139-word-break)
8282
- [x] [143. Reorder list](../src/medium/reorder_list.rs) -> [Problem Description](../src/medium/readme.md#143-reorder-list)

‎theory/categories/7.greedy/readme.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Greedy algorithms are implemented using a greedy function that makes the best ch
1818
- [x] [Maximum Subarray](https://leetcode.com/problems/maximum-subarray/) | Medium | [Solution](../../../src/medium/maximum_subarray.rs) | [Problem Description](../../../src/medium/readme.md#53-maximum-subarray)
1919
- [x] [Jump Game](https://leetcode.com/problems/jump-game/) | Medium | [Solution](../../../src/medium/jump_game.rs) | [Problem Description](../../../src/medium/readme.md#55-jump-game)
2020
- [x] [Jump Game II](https://leetcode.com/problems/jump-game-ii/) | Medium | [Solution](../../../src/medium/jump_game_ii.rs) | [Problem Description](../../../src/medium/readme.md#45-jump-game-ii)
21-
- [ ] [Gas Station](https://leetcode.com/problems/gas-station/) | Medium | [Solution](../../../src/medium/gas_station.rs) | [Problem Description](../../../src/medium/readme.md#134-gas-station)
21+
- [x] [Gas Station](https://leetcode.com/problems/gas-station/) | Medium | [Solution](../../../src/medium/gas_station.rs) | [Problem Description](../../../src/medium/readme.md#134-gas-station)
2222
- [ ] [Hand of Straights](https://leetcode.com/problems/hand-of-straights/) | Medium | [Solution](../../../src/medium/hand_of_straights.rs) | [Problem Description](../../../src/medium/readme.md#846-hand-of-straights)
2323
- [ ] [Merge Triplets to Form Target Triplet](https://leetcode.com/problems/merge-triplets-to-form-target-triplet/) | Medium | [Solution](../../../src/medium/merge_triplets_to_form_target_triplet.rs) | [Problem Description](../../../src/medium/readme.md#1899-merge-triplets-to-form-target-triplet)
2424
- [ ] [Partition Labels](https://leetcode.com/problems/partition-labels/) | Medium | [Solution](../../../src/medium/partition_labels.rs) | [Problem Description](../../../src/medium/readme.md#763-partition-labels)

0 commit comments

Comments
 (0)
Please sign in to comment.