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

पायथन में सॉर्ट किए गए मैट्रिक्स में Kth सबसे छोटा तत्व

मान लीजिए कि हमारे पास एक n x n मैट्रिक्स है जहां प्रत्येक पंक्तियों और स्तंभों को बढ़ते क्रम में क्रमबद्ध किया गया है, हमें मैट्रिक्स में kth सबसे छोटा तत्व खोजना होगा। ध्यान दें कि यह क्रमबद्ध क्रम में kth सबसे छोटा तत्व है, kth अद्वितीय तत्व नहीं है। तो अगर इनपुट [[1,5,9], [10,11,13], [12,13,15]] जैसा है, अगर k =8 है, तो आउटपुट 13 होगा।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • चेकवैल () नामक एक विधि को परिभाषित करें और तर्क मैट्रिक्स और मूल्य हैं
  • i:=0, j:=मैट्रिक्स की लंबाई[0] – 1, काउंटर:=0
  • जबकि मैं <मैट्रिक्स की लंबाई और j>=0
    • यदि मैट्रिक्स [i, j]> मान है, तो j को 1 से घटाएं अन्यथा काउंटर :=काउंटर + j + 1, i को 1 से बढ़ा दें
  • वापसी काउंटर
  • मुख्य विधि इस प्रकार होगी -
  • n :=मैट्रिक्स की पंक्ति, उच्च :=निचला दायां कोना तत्व, निम्न :=ऊपरी बाएँ कोने का तत्व
  • जबकि कम <=उच्च, करें
    • मध्य =निम्न + (उच्च - निम्न)/2
    • गिनती:=checkVal(मैट्रिक्स, मध्य)
    • यदि गिनती
  • कम वापसी

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

उदाहरण

class Solution(object):
   def kthSmallest(self, matrix, k):
      """
      :type matrix: List[List[int]]
      :type k: int
      :rtype: int
      """
      n = len(matrix)
      high = matrix[n-1][n-1]
      low = matrix[0][0]
      while low<=high:
         mid = low + (high - low) /2
         count = self.check_value(matrix,mid)
         if count< k:
            low = mid+1
         else :
            high = mid-1
      return int(low)
   def check_value(self, matrix, value):
      i = 0
      j = len(matrix[0])-1
      counter = 0
      while(i<len(matrix) and j >=0):
         if matrix[i][j] > value:
            j-=1
         else:
            counter+=j+1
            i+=1
      return counter
matrix = [[1,5,9],[10,11,13],[12,13,15]]
ob = Solution()
print(ob.kthSmallest(matrix, 8))

इनपुट

matrix =[[1,5,9],[10,11,13],[12,13,15]]
k = 8

आउटपुट

13

  1. पायथन में बाइनरी सर्च ट्री में kth सबसे छोटा तत्व खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक बाइनरी सर्च ट्री है, और एक और पूर्णांक k है, तो हमें ट्री में kth सबसे छोटा मान खोजना होगा। तो, अगर इनपुट पसंद है k =3, तो आउटपुट 7 होगा इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - स्टैक :=एक खाली स्टैक मैं :=0 उत्तर :=-1 जबकि स्टैक खाली नहीं है या रूट

  1. पायथन में एक BST में Kth सबसे छोटा तत्व

    मान लीजिए कि हमारे पास एक बाइनरी सर्च ट्री है। हमें उस BST में Kth सबसे छोटा तत्व खोजना है। तो अगर पेड़ जैसा है - तो अगर हम तीसरा सबसे छोटा तत्व खोजना चाहते हैं, तो k =3, और परिणाम 7 होगा। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - नोड्स नामक एक खाली सूची बनाएं कॉल सॉल्व (रूट, नोड्स) रिटर

  1. पायथन प्रोग्राम एक तत्व को क्रमबद्ध सूची में सम्मिलित करने के लिए

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक सूची दी गई है, हमें क्रमबद्ध क्रम को बदले बिना सूची में एक तत्व डालने की आवश्यकता है नीचे चर्चा के अनुसार दो दृष्टिकोण हैं- दृष्टिकोण 1:पाशविक बल विधि उदाहरण def insert(list_, n):    # search