ধরুন আমাদের একটি 2D ম্যাট্রিক্স আছে, যেখানে ম্যাট্রিক্স [r, c] একটি শহরের একটি কনডমিনিয়ামের উচ্চতাকে প্রতিনিধিত্ব করে। ম্যাট্রিক্সের প্রতিটি সারির সর্বোচ্চ গ্রহণ করে পশ্চিম-পূর্ব আকাশরেখা দৃশ্যমান হয়। এবং উত্তর-দক্ষিণ স্কাইলাইন প্রতিটি কলাম সর্বাধিক গ্রহণ করে দৃশ্যমান করা যেতে পারে। আমাদের একটি নতুন ম্যাট্রিক্স খুঁজে বের করতে হবে যেখানে একই পশ্চিম-পূর্ব এবং উত্তর-দক্ষিণ আকাশরেখা রেখে প্রতিটি কনডোমিনিয়ামের উচ্চতা সর্বোচ্চ সম্ভাব্য উচ্চতায় বাড়ানো হয়।
সুতরাং, যদি ইনপুট মত হয়
2 | 3 | 4 |
5 | 6 | 7 |
8 | 9 | 10 |
4 | 4 | 4 |
7 | 7 | 7 |
8 | 9 | 10 |
যেমন পশ্চিম-পূর্ব আকাশরেখা হল [4, 7, 10] এবং উত্তর-দক্ষিণ স্কাইলাইন হল [8, 9, 10]। আমরা স্কাইলাইন পরিবর্তন না করেই প্রথম সারির সবকিছুর মান 4 এবং দ্বিতীয় সারির সবকিছুকে 7 মান পর্যন্ত বাড়াতে পারি।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব:
-
r :=ম্যাট্রিক্সের প্রতিটি সারির সর্বোচ্চ তালিকা
-
c :=ম্যাট্রিক্সের প্রতিটি কলামের সর্বোচ্চ একটি তালিকা
-
ম্যাট্রিক্সের সারি গণনা 0 থেকে রেঞ্জের জন্য, করুন
-
j রেঞ্জ 0 থেকে ম্যাট্রিক্সের কলাম গণনার জন্য, করুন
-
যদি r[i]
-
ম্যাট্রিক্স[i, j] :=r[i]
-
-
অন্যথায়,
-
ম্যাট্রিক্স[i, j] :=c[j]
-
-
-
-
রিটার্ন ম্যাট্রিক্স
আরও ভালভাবে বোঝার জন্য আসুন নিম্নলিখিত বাস্তবায়ন দেখি:
উদাহরণ
শ্রেণির সমাধান:def solve(self, matrix):r =[max(i) for i in matrix] c =[max(i) i এর জন্য i in zip(*matrix)] এর জন্য i range(len(matrix) ); গইনপুট
[[2, 3, 4],[5, 6, 7],[8, 9, 10]]]আউটপুট
[[4, 4, 4], [7, 7, 7], [8, 9, 10]]