কম্পিউটার

পাইথনে ম্যাট্রিক্স জিরো সেট করুন


বিবেচনা করুন আমাদের একটি ম্যাট্রিক্স আছে, সেই ম্যাট্রিক্সে যদি একটি উপাদান 0 হয়, তাহলে সেই ম্যাট্রিক্সের পুরো সারি এবং কলামটিকে 0 করুন। রূপান্তরটি ইন-প্লেস হবে। তাই যদি ম্যাট্রিক্স হয় −

৷ ৷ ৷ ৷ ৷
1 0 1
1 11
1 11

তারপর আউটপুট হবে −

৷ ৷
0 0 0
1 0 1
1 0 1

আসুন ধাপগুলো দেখি -

  • n :=সারির সংখ্যা, m :=কলামের সংখ্যা, পতাকা সেট করুন :=মিথ্যা
  • যদি mat[0, 0] =0 হয়, তাহলে পতাকা সেট করুন :=true
  • সারি সেট করুন :=false, এবং col :=false
  • আমি 1 থেকে n
      পরিসরে
    • যদি mat[i, 0] =0 হয়, তাহলে col :=True সেট করুন এবং লুপ ভাঙুন
  • আমি 1 থেকে m
      রেঞ্জের মধ্যে
    • যদি mat[0, i] =0, তারপর সারি সেট করুন :=True এবং লুপ ভাঙুন
  • আমি 1 থেকে n
      পরিসরে 1 থেকে m
        পরিসরে j-এর জন্য
      • যদি mat[i, j] =0 হয়, তাহলে mat[i, 0] =0 এবং mat[0, j] :=0 সেট করুন
  • আমি 1 থেকে n
      পরিসরে 1 থেকে m
        পরিসরে j-এর জন্য
      • যদি mat[i, 0] =0 এবং mat[0, j] =0 হয়, তাহলে mat[i, j] =0 সেট করুন
  • যদি পতাকা সেট করা হয়
    • আমি 0 থেকে n রেঞ্জের জন্য, ম্যাট [i, 0] :=0
    • আমি 0 থেকে m, mat[0, i] :=0 রেঞ্জের জন্য
  • অন্যথায়
    • যদি col সেট করা হয়, তাহলে 0 থেকে n রেঞ্জের i এর জন্য, mat [i, 0] :=0
    • যদি সারি সেট করা হয়, তাহলে i এর জন্য 0 থেকে m, mat [0, i] :=0

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

class Solution(object):
   def setZeroes(self, matrix):
      n = len(matrix)
      m = len(matrix[0])
      flag = False
      if matrix[0][0] == 0:
         flag = True
         row = False
         column = False
      for i in range(1,n):
         if matrix[i][0] == 0:
            column = True
            break
      for i in range(1,m):
         if matrix[0][i] == 0:
            row = True
            break
      for i in range(1,n):
         for j in range(1,m):
            if matrix[i][j] == 0:
               matrix[0][j] = 0
               matrix[i][0]=0
      for i in range(1,n):
         for j in range(1,m):
            if not matrix[i][0] or not matrix[0][j]:
               matrix[i][j] = 0
      if flag:
         for i in range(n):
            matrix[i][0] = 0
         for i in range(m):
            matrix[0][i]=0
      else:
         if column:
            for i in range(n):
               matrix[i][0]=0
         if row:
            for i in range(m):
               matrix[0][i]=0
      return matrix
ob1 = Solution()
print(ob1.setZeroes([[1,0,1],[1,1,1],[1,1,1]]))

ইনপুট

[[1,0,1],[1,1,1],[1,1,1]]

আউটপুট

[[0, 0, 0], [1, 0, 1], [1, 0, 1]]

  1. পাইথনে একটি ম্যাট্রিক্স স্থানান্তর?

  2. পাইথন সেটের ধরন

  3. পাইথন সেট অপারেশন।

  4. পাইথন সেট