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

सी ++ में अंतराल सूची चौराहे

मान लीजिए कि हमारे पास बंद अंतराल की दो सूचियां हैं, यहां अंतराल की प्रत्येक सूची जोड़ीदार असंबद्ध और क्रमबद्ध क्रम में है। हमें इन दो अंतराल सूचियों का प्रतिच्छेदन ज्ञात करना है।

हम जानते हैं कि बंद अंतराल [ए, बी] को <=बी के रूप में दर्शाया गया है। एक <=x <=b के साथ वास्तविक संख्या x का समुच्चय। दो बंद अंतरालों का प्रतिच्छेदन वास्तविक संख्याओं का एक समूह होता है जो या तो खाली होता है, या एक बंद अंतराल के रूप में दर्शाया जा सकता है।

तो अगर इनपुट ए =[[0,2], [5,10], [13,23], [24,25]] और बी =[[1,5], [8,12],[ 15,24], [25,27]], तो आउटपुट [[1,2], [5,5], [8,10], [15,23], [24,24], [25] होगा। ,25]].

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

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

उदाहरण

class Solution(object):
   def intervalIntersection(self, A, B):
   result = []
   i,j = 0,0
   while i < len(A) and j < len(B):
      if self.intersect(A[i],B[j]):
         temp = [max(A[i][0],B[j][0]),min(A[i][1],B[j][1])]
         A[i][0]=temp[1]+1
         B[j][0] = temp[1]+1
         if A[i][0] > A[i][1] or A[i][1] <= temp[0]:
            i+=1
         if B[j][0]>B[j][1] or B[j][1] <= temp[0]:
            j+=1
         result.append(temp)
         continue
      if A[i][0]>B[j][1]:
         j+=1
      else:
         i+=1
   return result
   def intersect(self,a,b):
      if a[0]<=b[0] and a[1]>=b[0]:
         return True
      if b[0]<=a[0] and b[1] >=a[0]:
         return True
      return False
ob = Solution()
print(ob.intervalIntersection([[0,2],[5,10],[13,23],[24,25]],[[1,5],[8,12],[15,24],[25,27]]))

इनपुट

[[0,2],[5,10],[13,23],[24,25]]
[[1,5],[8,12],[15,24],[25,27]]

आउटपुट

[[1, 2], [5, 5], [8, 10], [15, 23], [24, 24], [25, 25]]

  1. सी ++ में एक लिंक्ड सूची को समतल करना

    इस समस्या में, हमें दो पॉइंटर नोड्स वाली लिंक्ड लिस्ट दी जाती है, दाएं और नीचे। दायां नोड मुख्य लिंक्ड सूची सूचक है। डाउन नोड उस नोड से शुरू होने वाली सेकेंडरी लिंक्ड लिस्ट के लिए है। सभी लिंक की गई सूचियां क्रमबद्ध हैं। हमारा काम एक लिंक की गई सूची को समतल करने के लिए एक प्रोग्राम बनाना ह

  1. सी ++ में एक सूची में गुम क्रमपरिवर्तन

    समस्या कथन किसी भी शब्द के क्रमपरिवर्तन की सूची को देखते हुए। क्रमपरिवर्तन की सूची से लापता क्रमपरिवर्तन का पता लगाएं। उदाहरण If permutation is = { “ABC”, “ACB”, “BAC”, “BCA”} then missing permutations are {“CBA” and “CAB”} हैं

  1. सी ++ में स्ट्रैंड सॉर्ट करें

    इस खंड में हम देखेंगे कि हम सी ++ के मानक पुस्तकालय का उपयोग करके कुछ सरणी या लिंक्ड सूची को कैसे सॉर्ट कर सकते हैं। सी ++ में कई अलग-अलग पुस्तकालय हैं जिनका उपयोग विभिन्न उद्देश्यों के लिए किया जा सकता है। छँटाई उनमें से एक है। C++ फ़ंक्शन std::list::sort() सूची के तत्वों को आरोही क्रम में क्रमबद्