Cho ma trận, sắp xếp từng cột theo thứ tự tăng dần.
Ví dụ đầu vào:
| 11 | 21 | 31 |
| 6 | 6 | 4 |
| 1 | 11 | 8 |
| 1 | 6 | 4 |
| 6 | 11 | 8 |
| 11 | 21 | 31 |
Các bước giải quyết
R= số hàng,C= số cộtres= ma trận cùng kích thước điền 0- Với mỗi cột
col:values= lấy tất cả phần tử cột đó- Sắp xếp
valuesgiảm dần - Với mỗi hàng
row:res[row][col] = values.pop()(lấy phần tử nhỏ nhất)
- Trả về
res
Ví dụ mã Python
class Solution:
def solve(self, matrix):
R = len(matrix)
C = len(matrix[0])
res = [[0] * C for _ in range(R)]
for col in range(C):
values = [r[col] for r in matrix]
values.sort(reverse=True)
for row in range(R):
res[row][col] = values.pop()
return res
ob = Solution()
matrix = [[11, 21, 31],[6, 6, 4],[1, 11, 8]]
print(ob.solve(matrix))
Đầu vào
[[11, 21, 31], [6, 6, 4], [1, 11, 8]]
Đầu ra
[[1, 6, 4],[6, 11, 8],[11, 21, 31]]