Pythonで行列ゼロを設定する
1つの要素が0の場合、その行列に行列があると考えて、その行列の行と列全体を0にします。変換はインプレースで行われます。したがって、行列が-
の場合1 | 0 | 1 |
1 | 1 | 1 |
1 | 1 | 1 |
その場合、出力は-
になります0 | 0 | 0 |
1 | 0 | 1 |
1 | 0 | 1 |
手順を見てみましょう-
- n:=行数、m:=列数、フラグの設定:=false
- mat [0、0] =0の場合、フラグを設定します:=true
- 行を設定:=false、列を設定:=false
- 1からnの範囲のiの場合
- mat [i、0] =0の場合、col:=Trueに設定し、ループを解除します
- 1からmの範囲のiの場合
- mat [0、i] =0の場合、行:=Trueを設定し、ループを解除します
- 1からnの範囲のiの場合
- 1からmの範囲のjの場合
- mat [i、j] =0の場合、mat [i、0] =0およびmat[0、j]:=0 に設定します。
- 1からmの範囲のjの場合
- 1からnの範囲のiの場合
- 1からmの範囲のjの場合
- mat [i、0] =0およびmat[0、j] =0の場合、mat [i、j]=0に設定します
- 1からmの範囲のjの場合
- フラグが設定されている場合
- 0からnの範囲のiの場合、mat [i、0]:=0
- 0からmの範囲のiの場合、mat [0、i]:=0
- それ以外の場合
- colが設定されている場合、0からnの範囲のiの場合、mat [i、0]:=0
- 行が設定されている場合、0からmの範囲のiの場合、mat [0、i]:=0
理解を深めるために、次の実装を見てみましょう-
例
class Solution(object): def setZeroes(self, matrix): n = len(matrix) m = len(matrix[0]) flag = False if matrix[0][0] == 0: flag = True row = False column = False for i in range(1,n): if matrix[i][0] == 0: column = True break for i in range(1,m): if matrix[0][i] == 0: row = True break for i in range(1,n): for j in range(1,m): if matrix[i][j] == 0: matrix[0][j] = 0 matrix[i][0]=0 for i in range(1,n): for j in range(1,m): if not matrix[i][0] or not matrix[0][j]: matrix[i][j] = 0 if flag: for i in range(n): matrix[i][0] = 0 for i in range(m): matrix[0][i]=0 else: if column: for i in range(n): matrix[i][0]=0 if row: for i in range(m): matrix[0][i]=0 return matrix ob1 = Solution() print(ob1.setZeroes([[1,0,1],[1,1,1],[1,1,1]]))
入力
[[1,0,1],[1,1,1],[1,1,1]]
出力
[[0, 0, 0], [1, 0, 1], [1, 0, 1]]
-
Pythonセット操作。
数学では、集合はそれ自体がオブジェクトと見なされる別個のオブジェクトのコレクションです。たとえば、2、4、6の数字は、別々に考えると別個のオブジェクトですが、まとめて考えると、{2,4,6}と書かれたサイズ3の単一のセットを形成します。 セットの操作 操作 表記 意味 交差点 A∩B との両方にあるすべての要素 ユニオン A∪B いずれかまたは(または両方)にあるすべての要素 違い A − B 含まれているが含まれていないすべての要素 補完 (または) 含まれていないすべての要素 Pythonでは、リストと比較して、セットを使用する主な利点は、特定の要素がセットのメンバー
-
Pythonセット
Pythonセットは、順序付けされていないを含むコレクションタイプです。 ユニークのコレクション および不変 オブジェクト。つまり、Pythonセットは重複するアイテムを保持できず、セットが作成されると、アイテムを変更することはできません。 注:セットのアイテムは不変です。つまり、アイテムを変更することはできません。ただし、セット自体は変更可能です。つまり、セットにアイテムを追加したり、セットからアイテムを削除したりできます。 順序は維持されません。たとえば、同じセットを印刷するたびに、アイテムの順序が異なる場合があります。 Pythonでは、セットは中括弧{}を使用して構築されます セッ