কম্পিউটার টিউটোরিয়াল

পাইথনে বাইনারি ম্যাট্রিক্সে ১-দিয়ে ভরা বর্গ উপম্যাট্রিক্সের সংখ্যা গণনা করার প্রোগ্রাম


একটি ২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
  1. Python-এ n সংখ্যক ১কে m দিয়ে ভাগ করে অবশিষ্ট বের করার প্রোগ্রাম

  2. পাইথনে বাইনারি ম্যাট্রিক্স-এ সব ১ থাকা বর্গাকার সাবম্যাট্রিক্সের সংখ্যা বের করার প্রোগ্রাম

  3. পাইথনে বাইনারি লিস্টে নির্দিষ্ট সমের সাবলিস্ট কাউন্ট করা

  4. পাইথন প্রোগ্রাম - n নোড দিয়ে BST-এর সংখ্যা বের করুন