Pythonで行列のすべての行に共通する個別の要素を見つける
したがって、入力が次のような場合
13 | 2 | 15 | 4 | 17 |
15 | 3 | 2 | 4 | 36 |
15 | 2 | 15 | 4 | 12 |
15 | 26 | 4 | 3 | 2 |
2 | 19 | 4 | 22 | 15 |
この場合、出力は[2,4,15]
になります。これを解決するには、次の手順に従います-
-
関数sortRows()を定義します。これにはマトリックスが必要です
-
n:=行数
-
0からnの範囲のiの場合、実行
-
リスト行列を並べ替える[i]
-
-
mainメソッドで、次のようにします-
-
n:=行数
-
sortRows(matrix)
-
current_idx:=サイズnのリスト、0で埋める
-
0からnの範囲のiの場合、実行
-
current_idx [i]:=0
-
-
f:=0
-
current_idx [0]
-
値:=matrix [0、current_idx [0]]
-
present:=True
-
1からnの範囲のiの場合、実行します
-
while(current_idx [i]
-
current_idx [i]:=current_idx [i] + 1
-
-
matrix [i、current_idx [i]-1]がvalueと同じでない場合、
-
present:=False
-
-
current_idx [i]がnと同じ場合、
-
f:=1
-
ループから出てきます
-
-
-
存在がゼロ以外の場合、
-
表示値
-
-
fが1と同じ場合、
-
ループから出てきます
-
-
current_idx [0]:=current_idx [0] + 1
-
例
理解を深めるために、次の実装を見てみましょう-
MAX = 100 def sortRows(matrix): n = len(matrix) for i in range(0, n): matrix[i].sort(); def find_common(matrix): n = len(matrix) sortRows(matrix) current_idx = [0] * n for i in range (0, n): current_idx[i] = 0 f = 0 while(current_idx[0] < n): value = matrix[0][current_idx[0]] present = True for i in range (1, n): while (current_idx[i] < n and matrix[i][current_idx[i]] <= value): current_idx[i] = current_idx[i] + 1 if (matrix[i][current_idx[i] - 1] != value): present = False if (current_idx[i] == n): f = 1 break if (present): print(value, end = ", ") if (f == 1): break current_idx[0] = current_idx[0] + 1 mat = [ [13, 2, 15, 4, 17], [15, 3, 2, 4, 36], [15, 2, 15, 4, 12], [15, 26, 4, 3, 2], [2, 19, 4, 22, 15]] find_common(mat)
入力
[[13, 2, 15, 4, 17], [15, 3, 2, 4, 36], [15, 2, 15, 4, 12], [15, 26, 4, 3, 2], [2, 19, 4, 22, 15]]
出力
2, 4, 15,
-
Pythonでツリーのすべての要素の合計を見つけるプログラム
いくつかの値を含む二分木があるとすると、ツリー内のすべての値の合計を見つける必要があります。 したがって、入力が次のような場合 その場合、出力は14になります これを解決するには、次の手順に従います- 関数recurse()を定義します。これはノードを取ります val:=ノードの値 ノードの左側がnullでない場合、 val:=val + recurse(ノードの左側) ノードの権利がnullでない場合、 val:=val + recurse(ノードの右側) 戻り値 メインの方法から、次のようにします- ルートがゼロ以外
-
指定された整数配列のすべての個別の要素を出力するPythonプログラム。
与えられた整数配列。配列の要素が重複している可能性があります。私たちのタスクは、個別の値を表示することです。 例 Input::A=[1,2,3,4,2,3,5,6] Output [1,2,3,4,5,6] アルゴリズム Step 1: input Array element. Step 2: Then pick all the elements one by one. Step 3: then check if the picked element is already displayed or not. Step 4: use one flag variable which i