Skip to content

Commit d8948ff

Browse files
committed
Runtime: 75 ms (Top 80.5%) | Memory: 96.50 MB (Top 55.46%)
1 parent 830be01 commit d8948ff

File tree

1 file changed

+18
-58
lines changed

1 file changed

+18
-58
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,23 @@
1-
////** hindi me samjho ab//
2-
// agar mje left or right or bottom or top me 1 mila to me aaga badunga agar nahi
3-
//mila mtlb ya to wo boundary hai uske baad 0 ara hai agar esa hai to cnt+=1
4-
//kardo kuki wo hi to meri boundary banegi . note : agar boundary hai mtlb
5-
//i <0 or j<0 or i>=n or j>=m to cnt+=1 kardo or agar box ke side walo me 0 hai to wahan bhi cnt+=1 .
6-
// hope it make sense
7-
// please upvote if you like my post
1+
// Runtime: 75 ms (Top 80.5%) | Memory: 96.50 MB (Top 55.46%)
2+
83
class Solution {
94
public:
10-
int cnt =0 ;
11-
bool vis[101][101] ;
12-
bool valid( int i , int j, int n , int m){
13-
if(i>=n or j>=m or i<0 or j<0 )
14-
return false;
15-
return true ;
16-
}
175
int islandPerimeter(vector<vector<int>>& grid) {
18-
memset(vis,false , sizeof(vis)) ;
19-
for(int i = 0 ; i <grid.size() ; i ++){
20-
for(int j=0 ; j<grid[0].size() ; j++) {
21-
22-
23-
if(grid[i][j]==1){
24-
25-
solve(grid, i,j) ;
26-
return cnt ;
27-
}
28-
}
29-
}
30-
return 69;
6+
int ans = 0 , row = grid.size(), col = grid[0].size();
7+
for(int i = 0 ; i < row ; i++)
8+
{
9+
for(int j = 0 ; j < col ; j++)
10+
{
11+
if( grid[i][j])
12+
{
13+
ans+=4;
14+
if(i < row - 1 && grid[i+1][j])ans--;
15+
if(j < col -1 && grid[i][j+1])ans--;
16+
if(j && grid[i][j-1])ans--;
17+
if(i && grid[i-1][j])ans--;
18+
}
19+
}
20+
}
21+
return ans;
3122
}
32-
void solve(vector<vector<int>>&grid, int i , int j ){
33-
int n = grid.size() ;
34-
int m = grid[0].size() ;
35-
vis[i][j]=true ;
36-
if(!valid(i-1,j,n,m) or (valid(i-1,j,n,m) and grid[i-1][j]==0)){
37-
cnt++ ;
38-
}
39-
else if(valid(i-1,j,n,m)and !vis[i-1][j])
40-
solve(grid, i-1,j) ;
41-
42-
if(!valid(i+1,j,n,m) or (valid(i+1,j,n,m) and grid[i+1][j]==0)){
43-
cnt++ ;
44-
}
45-
else if(valid(i+1,j,n,m)and !vis[i+1][j])
46-
solve(grid,i+1,j) ;
47-
48-
if(!valid(i,j-1,n,m) or (valid(i,j-1,n,m) and grid[i][j-1]==0)){
49-
cnt++ ;
50-
}
51-
else if(valid(i,j-1,n,m)and !vis[i][j-1])
52-
solve(grid,i,j-1) ;
53-
54-
if(!valid(i,j+1,n,m) or (valid(i,j+1,n,m) and grid[i][j+1]==0)){
55-
cnt++ ;
56-
}
57-
else if(valid(i,j+1,n,m)and !vis[i][j+1])
58-
solve(grid,i,j+1) ;
59-
60-
61-
62-
}
6323
};

0 commit comments

Comments
 (0)