Skip to content

Commit 1089be2

Browse files
authored
Merge pull request #267 from Subhosjx/main
3446. Sort Matrix by Diagonals.cpp
2 parents 9c191c8 + b9dd743 commit 1089be2

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed

3446. Sort Matrix by Diagonals.cpp

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
class Solution {
2+
public:
3+
vector<vector<int>> sortMatrix(vector<vector<int>>& grid) {
4+
vector<vector<int>> ans;
5+
vector<int> t;
6+
int cnt = 1;
7+
int j=0;
8+
for(int i=grid.size()-1;i>=0;i--){
9+
int p=i;
10+
while(j < grid.size() && p < grid.size()){
11+
t.push_back(grid[p][j]);
12+
p++;
13+
j++;
14+
}
15+
sort(t.begin(), t.end());
16+
reverse(t.begin(), t.end());
17+
ans.push_back(t);
18+
t.clear();
19+
j=0;
20+
}
21+
vector<vector<int>> a1;
22+
int r = 1;
23+
for(int k=1;k<grid.size();k++){
24+
int q = 0;
25+
int d = r;
26+
while(q < grid.size() && d < grid.size()){
27+
t.push_back(grid[q][d]);
28+
q++;
29+
d++;
30+
}
31+
sort(t.begin(), t.end());
32+
a1.push_back(t);
33+
t.clear();
34+
r++;
35+
}
36+
for(int i=0;i<a1.size();i++){
37+
ans.push_back(a1[i]);
38+
}
39+
j = grid.size()-1;
40+
int p = 0,q=0;
41+
for(int i=grid.size()-1;i>=0;i--){
42+
int r = i;
43+
while(q < ans[p].size()){
44+
grid[r][j] = ans[p][q];
45+
q++;
46+
r++;
47+
j++;
48+
}
49+
j=0;
50+
q=0;
51+
p++;
52+
}
53+
q=0;
54+
j=1;
55+
r=0;
56+
for(int i=1;i<grid.size();i++){
57+
while(q < ans[p].size()){
58+
grid[r][j] = ans[p][q];
59+
q++;
60+
r++;
61+
j++;
62+
}
63+
j=i+1;
64+
r=0;
65+
q=0;
66+
p++;
67+
}
68+
return grid;
69+
}
70+
};

0 commit comments

Comments
 (0)