ধরুন আমাদের একটি ম্যাট্রিক্স আছে, আমাদের মোট পূর্ণসংখ্যার সংখ্যা বের করতে হবে যার মান তার সারি এবং কলামে সবচেয়ে বড়।
সুতরাং, যদি ইনপুট মত হয়
1 | 3 | 2 |
4 | 6 | 5 |
1 | 5 | 7 |
তাহলে আউটপুট 2 হবে কারণ 6 এবং 7 বৈধ।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
ম্যাট :=ম্যাট্রিক্স
-
r_maxes :=ম্যাটের প্রতিটি সারির সর্বোচ্চ উপাদানের একটি তালিকা তৈরি করুন
-
c_maxes :=ম্যাটের প্রতিটি কলামের সর্বাধিক উপাদানগুলির একটি তালিকা তৈরি করুন
-
a :=একটি নতুন তালিকা
-
r এর জন্য 0 থেকে সারির সংখ্যা - 1, করুন
-
c এর জন্য 0 থেকে কলামের সংখ্যা - 1, করুন
-
v :=ম্যাট[আর, সি]
-
যদি r_maxes[r] হয় v এবং c_maxes[c] হয় v, তাহলে
-
a
এর শেষে v সন্নিবেশ করান
-
-
-
-
একটি
এর রিটার্ন সাইজ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution: def solve(self, matrix): mat = matrix trans_mat = list(zip(*matrix)) print(mat, trans_mat) r_maxes = [max(row) for row in mat] c_maxes = [max(t_row) for t_row in trans_mat] a = [] for r in range(len(mat)): for c in range(len(trans_mat)): v = mat[r][c] if (r_maxes[r], c_maxes[c]) == (v, v): a.append(v) return len(a) ob = Solution() matrix = [ [1, 3, 2], [4, 6, 5], [1, 5, 7] ] print(ob.solve(matrix))
ইনপুট
[[1, 3, 2], [4, 6, 5], [1, 5, 7]]
আউটপুট
2