Skip to content

Commit 0e20dc8

Browse files
committed
create 2017-grid-game.cpp
1 parent 6b15c8f commit 0e20dc8

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

Diff for: cpp/2017-grid-game.cpp

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/*
2+
Approch:
3+
2nd robot can collect either all the bottom points
4+
before the break point (when 1st robot goes to bottom)
5+
or collect all the top points after that break point.
6+
Time Complexity: O(N)
7+
Space Complexity: O(1)
8+
*/
9+
10+
class Solution {
11+
public:
12+
long long gridGame(vector<vector<int>>& grid) {
13+
14+
// prefix sum
15+
long long top = grid[0][0],bottom = 0, answer = LONG_MAX;
16+
for(int i =1;i<grid[0].size();i++){
17+
top += grid[0][i];
18+
}
19+
20+
for(int i =0;i<grid[0].size();i++){
21+
// All the top points 2nd robot can collect
22+
top -= grid[0][i];
23+
24+
// min because first robot wants to minimize
25+
answer = min(answer,max(top,bottom));
26+
27+
// All the bootom points the robot could collect
28+
bottom += grid[1][i];
29+
}
30+
31+
return answer;
32+
}
33+
};

0 commit comments

Comments
 (0)