ধরুন আমাদের একটি বাইনারি ম্যাট্রিক্স ম্যাট আছে। আমাদের ম্যাট্রিক্সে প্রতিটি সারি নির্বাচন করতে হবে, তারপরে বিপরীত থ্রো। এর পরে, প্রতিটি বিট ফ্লিপ করুন (0 থেকে 1 এবং 1 থেকে 0)।
সুতরাং, যদি ইনপুট মত হয়
1 | 1 | 0 |
0 | 1 | 0 |
0 | 0 | 1 |
তাহলে আউটপুট হবে
1 | 0 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- ট্র্যাক:=0
- মাদুরের প্রতিটি সারির জন্য, করুন
- সারি বিপরীত করুন
- ট্র্যাকার :=0
- সারির প্রতিটি ভ্যালের জন্য, করুন
- যদি val 1 হয়, তাহলে
- mat[track, tracker] :=0
- অন্যথায়,
- mat[track, tracker] :=1
- ট্র্যাকার :=ট্র্যাকার + 1
- যদি val 1 হয়, তাহলে
- ট্র্যাক :=ট্র্যাক + 1
- রিটার্ন ম্যাট
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution: def solve(self, mat): track=0 for row in mat: row.reverse() tracker = 0 for val in row: if val == 1: mat[track][tracker] = 0 else: mat[track][tracker] = 1 tracker += 1 track += 1 return mat ob = Solution() mat = [[1,1,0],[0,1,0],[0,0,1]] print(ob.solve(mat))
ইনপুট
[[1,1,0],[0,1,0],[0,0,1]]
আউটপুট
[[1, 0, 0], [1, 0, 1], [0, 1, 1]]