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

Pythonの行列の各行の最小の交差要素を見つけるプログラム


各行が昇順でソートされている2Dマトリックスがあるとします。すべての行に存在する最小の数を見つける必要があります。そのような結果がない場合は、-1を返します。

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

2 3 5
5 10 10
1 3 5

その場合、出力は5になります

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

  • 行列が空の場合、

    • -1を返す

  • 最初:=行列の最初の行からの新しいセット

  • 行列の各行について、次のようにします

    • first:=最初に行の要素のセットを交差させます

    • 最初が空の場合、

      • -1を返す

  • 最初の最小値を返す

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

class Solution:
   def solve(self, matrix):
      if not matrix:
         return -1
      first = set(matrix[0])
      for row in matrix:
         first &= set(row)
         if not first:
            return -1
      return min(first)
ob1 = Solution()
matrix = [
   [2, 3, 5],
   [5, 10, 10],
   [1, 3, 5]
]
print(ob1.solve(matrix))

入力

matrix = [
[2, 3, 5],
[5, 10, 10],
[1, 3, 5] ]

出力

5

  1. Pythonの二分探索木でk番目に小さい要素を見つけるプログラム

    二分探索木があり、別の整数kがあるとすると、ツリー内でk番目に小さい値を見つける必要があります。 したがって、入力が次のような場合 k =3の場合、出力は7になります これを解決するには、次の手順に従います- スタック:=空のスタック i:=0 ans:=-1 スタックが空でないか、ルートがnullでない場合は、実行してください ルートがnullでない場合は、実行してください ルートをスタックにプッシュする ルート:=ルートの左側 v:=スタックから要素をポップ iがkと同じ場合、 ans:=vの値 ループか

  2. 行列の転置を見つけるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 行列が与えられた場合、転置を同じ行列に格納して表示する必要があります。 行列の転置は、行を列に、列を行に変更することで得られます。つまり、A行列の転置はA[i][j]をA[j][i]に変更することで得られます。 以下に示す実装を見てみましょう- 例 N = 4 def transpose(A):    for i in range(N):       for j in range(i+1, N):     &nbs