Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでの行列の列ソート


マトリックスがあるとすると、各列を昇順で並べ替える必要があります。

したがって、入力が次のような場合

11
21
31
6
6
4
1
11
8

その場合、出力は次のようになります

1
6
4
6
11
8
11
21
31

これを解決するには、次の手順に従います-

  • R:=行列の行数、C:=行列の列数
  • res:=与えられた行列と同じサイズの行列で、0で埋めます
  • 0からCの範囲の列の場合は、
    • values:=要素をmatrix [col]
    • のベクトルとして受け取ります
    • 0からRの範囲の行については、
      • res [row、col]:=値から最後の要素を削除
  • return res

理解を深めるために、次の実装を見てみましょう-

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))

入力

[[11, 21, 31],
[6, 6, 4],
[1, 11, 8]]

出力

[[1, 6, 4],[6, 11, 8],[11, 21, 31]]

  1. Pythonで2DMatrixIIを検索する

    1つのmxn行列があるとします。その行列の値を検索する効率的なアルゴリズムを作成する必要があります。この行列には次のプロパティがあります- 各行の整数は、左から右に昇順で並べ替えられます。 各列の整数は、上から下に昇順で並べ替えられます。 したがって、行列が-のような場合 1 4 7 11 15 2 5 8 12 19 3 6 9 16 22 10 13 14 17 24 18 21 23 26 30 ターゲットが5の場合はtrueを返し、ターゲットが20の場

  2. Pythonで行列を転置しますか?

    行列を転置するということは、その列をその行に変換することを意味します。転置後にどのように見えるかを例で理解しましょう。 -のような元の行列があるとします。 x = [[1,2][3,4][5,6]] 上記の行列「x」には、1、3、5と2、4、6を含む2つの列があります。 したがって、行列「x」の上に転置すると、列が行になります。したがって、上記のマトリックスの転置バージョンは次のようになります- x1 = [[1, 3, 5][2, 4, 6]] したがって、別のマトリックス「x1」があります。これは、さまざまな場所でさまざまな値を使用してさまざまに編成されています。 以下は、Pyt