একটি ২D বাইনারি ম্যাট্রিক্স দেওয়া আছে। সব ১-দিয়ে ভরা বর্গ উপম্যাট্রিক্সের মোট সংখ্যা বের করুন।
উদাহরণ: ৫x৪ ম্যাট্রিক্স → আউটপুট ১৭ (১২টি ১x১, ৪টি ২x২, ১টি ৩x৩)।
সমাধানের ধাপগুলো:
res = 0।- প্রতিটি সেলের জন্য: যদি প্রথম সারি/কলাম হয় তবে
res += matrix[i][j]। - অন্যথায় যদি ১ হয় তবে
matrix[i][j] = min(বাম, উপরে, ডায়াগোনাল) + 1এবংres += matrix[i][j]। resরিটার্ন করুন।
উদাহরণ
class Solution:
def solve(self, matrix):
res = 0
for i in range(len(matrix)):
for j in range(len(matrix[0])):
if i == 0 or j == 0:
res += matrix[i][j]
elif matrix[i][j] == 1:
matrix[i][j] = min(matrix[i][j-1], matrix[i-1][j], matrix[i-1][j-1]) + 1
res += matrix[i][j]
return res
ob = Solution()
matrix = [
[1, 1, 1, 0],
[1, 1, 1, 0],
[1, 1, 1, 0],
[0, 0, 0, 0],
[1, 0, 1, 1]
]
print(ob.solve(matrix))
ইনপুট
matrix = [
[1, 1, 1, 0],
[1, 1, 1, 0],
[1, 1, 1, 0],
[0, 0, 0, 0],
[1, 0, 1, 1]
]
আউটপুট
17