Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में सर्पिल मैट्रिक्स 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) और (पंक्ति2, कॉल2):=(एन, एन), और रेस नामक एक मैट्रिक्स बनाएं, फिर इसे 0s से भरें, और संख्या सेट करें:=1
  • जबकि संख्या <=n2,
    • मैं के लिए col1 से col2 की सीमा में,
      • res[row1, i] =num, incase num by 1
      • यदि num> n2, तो ब्रेक करें
    • i के लिए पंक्ति 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 से घटाएं, col1 को 1 से बढ़ाएं और col2 को 1 से घटाएं
  • रिटर्न रेस

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

उदाहरण

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. पायथन में प्लस वन

    मान लीजिए कि हमारे पास पूर्णांकों की एक सरणी है, मान लीजिए A. A में n तत्व होंगे, और वे गैर-ऋणात्मक हैं। संपूर्ण सरणी A एक बड़ी संख्या का प्रतिनिधित्व कर रहा है। अतः यदि A =[5, 3, 2, 4] दिया जाता है, तो यह संख्या 5324 को इंगित करता है। हमें उस सरणी A को लेना है, फिर संख्या को 1 से बढ़ाना है, और दिए

  1. पायथन में मैट्रिक्स को इनिशियलाइज़ करें

    इस लेख में, हम सीखेंगे कि हम पायथन 3.x में द्वि-आयामी सूची का उपयोग करके मैट्रिक्स को कैसे प्रारंभ कर सकते हैं। या पहले। आइए एक मैट्रिक्स को इनिशियलाइज़ करने का सहज तरीका देखें जो केवल पायथन भाषा प्रदान करता है। यहां हम लिस्ट कॉम्प्रिहेंशन का लाभ उठाते हैं। हम इनर लिस्ट को इनिशियलाइज़ करते हैं और फ

  1. पायथन में एक मैट्रिक्स को स्थानांतरित करें?

    एक मैट्रिक्स को स्थानांतरित करने का मतलब है कि हम इसके कॉलम को इसकी पंक्तियों में बदल रहे हैं। आइए इसे एक उदाहरण से समझते हैं कि अगर ट्रांसपोज़ के बाद कैसा दिखता है। मान लें कि आपके पास मूल मैट्रिक्स कुछ इस तरह है - x = [[1,2][3,4][5,6]] उपरोक्त मैट्रिक्स x में हमारे पास दो कॉलम हैं, जिनमें 1, 3,