Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Sắp xếp cột ma trận trong Python

Cho ma trận, sắp xếp từng cột theo thứ tự tăng dần.

Ví dụ đầu vào:

112131
664
1118
Đầu ra:
164
6118
112131

Các bước giải quyết

  • R = số hàng, C = số cột
  • res = 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 values giả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]]