কম্পিউটার

পাইথনে স্পাইরাল ম্যাট্রিক্স II


ধরুন আমাদের একটি ধনাত্মক পূর্ণসংখ্যা n আছে, আমাদের সর্পিল ক্রমে n2 উপাদান সহ একটি বর্গ ম্যাট্রিক্স তৈরি করতে হবে। তাই যদি n =5 হয়, তাহলে ম্যাট্রিক্স হবে −

1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7

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

  • সেট করুন (সারি 1, col1) :=(0, 0) এবং (row2, col2) :=(n, n), এবং res নামে একটি ম্যাট্রিক্স তৈরি করুন, তারপর 0s দিয়ে পূরণ করুন এবং সংখ্যা সেট করুন :=1<
  • যখন num <=n2,
    • আমি col1 থেকে col2 পরিসরে,
      • res[row1, i] =num, incase Num by 1
      • যদি num> n2 হয়, তাহলে বিরতি করুন
    • আমি সারি 1 + 1 থেকে সারি 2 পর্যন্ত,
      • res[i, col2-1] =num, incase Num by 1
      • যদি num> n2 হয়, তাহলে বিরতি করুন
    • আমি col2 – 2 রেঞ্জে col1 – 1,
        পর্যন্ত
      • res[row2 – 1, i] =num, incase Num by 1
      • যদি num> n2 হয়, তাহলে বিরতি করুন
    • আমি রেঞ্জ সারি 2 - 2 থেকে সারি 1 পর্যন্ত,
      • res[i, col1] =num, incase Num by 1
    • সারি 1 কে 1 দ্বারা বাড়ান, সারি 2 কে 1 দ্বারা কমান, 1 দ্বারা col1 বাড়ান এবং 1 দ্বারা col2 হ্রাস করুন
  • রিটার্ন রিটার্ন

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

উদাহরণ

class Solution(object):
   def generateMatrix(self, n):
      row1 = 0
      col1 = 0
      row2 = n
      col2 = n
      result = [ [0 for i in range(n)] for j in range(n)]
      num = 1
      while num<=n**2:
         for i in range(col1,col2):
            result[row1][i] = num
            num+=1
         if num > n**2:
            break
         for i in range(row1+1,row2):
            result[i][col2-1] = num
            num+=1
         if num > n**2:
            break
         for i in range(col2-2,col1-1,-1):
            result[row2-1][i] = num
            num+=1
         if num > n**2:
            break
         for i in range(row2-2,row1,-1):
            result[i][col1] = num
            num+=1
            row1+=1
            row2-=1
            col1+=1
            col2-=1
            #print(result)
      return result
ob1 = Solution()
print(ob1.generateMatrix(4))

ইনপুট

4

আউটপুট

[[1, 2, 3, 4], [12, 13, 14, 5], [11, 16, 15, 6], [10, 9, 8, 7]]

  1. পাইথনে চিত্র ঘোরান

  2. পাইথনে প্লাস ওয়ান

  3. পাইথনে ম্যাট্রিক্স শুরু করুন

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