Skip to content

Commit f1477c8

Browse files
authored
Create 3341. Find Minimum Time to Reach Last Room I (#789)
2 parents c1f06a8 + c9b4dc6 commit f1477c8

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
class Solution {
2+
public:
3+
#define p vector<int>
4+
int minTimeToReach(vector<vector<int>>& moveTime) {
5+
priority_queue<p,vector<p>,greater<p>> pq;
6+
int m=moveTime.size(),n=moveTime[0].size();
7+
vector<vector<int>> v(m,vector<int>(n,INT_MAX));
8+
v[0][0]=0;
9+
pq.push({0,0,0});
10+
while(true){
11+
int i=pq.top()[1],j=pq.top()[2];
12+
if(i==m-1 && j==n-1)
13+
break;
14+
pq.pop();
15+
if(i+1<m && v[i+1][j]==INT_MAX){
16+
int maxi=max(v[i][j]+1,moveTime[i+1][j]+1);
17+
v[i+1][j]=maxi;
18+
pq.push({maxi,i+1,j});
19+
}
20+
if(i-1>=0 && v[i-1][j]==INT_MAX){
21+
int maxi=max(v[i][j]+1,moveTime[i-1][j]+1);
22+
v[i-1][j]=maxi;
23+
pq.push({maxi,i-1,j});
24+
}
25+
if(j+1<n && v[i][j+1]==INT_MAX){
26+
int maxi=max(v[i][j]+1,moveTime[i][j+1]+1);
27+
v[i][j+1]=maxi;
28+
pq.push({maxi,i,j+1});
29+
}
30+
if(j-1>=0 && v[i][j-1]==INT_MAX){
31+
int maxi=max(v[i][j]+1,moveTime[i][j-1]+1);
32+
v[i][j-1]=maxi;
33+
pq.push({maxi,i,j-1});
34+
}
35+
}
36+
return v[m-1][n-1];
37+
}
38+
};

0 commit comments

Comments
 (0)