মানে cuadrado একটি m x m আকারের ম্যাট্রিক্স দেওয়া থাকলে, আমাদের সেই ম্যাট্রিক্সের সকল সারিতে সাধারণ উপাদানগুলো খুঁজে বের করতে হবে।
উদাহরণ
ইনপুট যদি নিচের ম্যাট্রিক্সের মত হয়:
| 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]
সমাধানের পদ্ধতি
- প্রথমে প্রতিটি সারি সাজানো (sort) করা হয়।
- তারপর একটি পয়েন্টার অ্যারে ব্যবহার করে প্রতিটি সারির বর্তমান অবস্থান ট্র্যাক করা হয়।
- প্রথম সারির উপাদানগুলো একেক করে নিয়ে বাকি সারিগুলোতে খুঁজা হয়।
- যদি কোন উপাদান সকল সারিতে পাওয়া যায়, তবে সেটি আউটপুট করা হয়।
পাইথন কোড
def sortRows(matrix):
n = len(matrix)
for i in range(n):
matrix[i].sort()
def find_common(matrix):
n = len(matrix)
sortRows(matrix)
current_idx = [0] * n
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] += 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] += 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,