मान लीजिए हमारे पास nums नामक अद्वितीय संख्याओं की एक सूची है। हमें संख्याओं की एक क्रमबद्ध 2D मैट्रिक्स ढूंढनी है जहां प्रत्येक सूची एक समावेशी अंतराल को दर्शाती है जो nums में सन्निकट संख्याओं को सारांशित करती है।
उदाहरण के लिए, यदि इनपुट nums = [10, 11, 12, 15, 16, 17, 28, 30] है, तो आउटपुट [[10, 12], [15, 17], [28, 28], [30, 30]] होगा, क्योंकि सूची में [10 से 12], [15 से 17] सन्निकट हैं, और 28 और 30 वहां हैं, उन्हें [28 से 28] और [30 से 30] के रूप में दर्शाया गया है।
इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे:
- nums सूची को क्रमबद्ध करें
- nums के अंत में अनंत डालें
- ans := एक नई सूची
- l := nums[0]
- i को 1 से nums के आकार तक के लिए करें:
- यदि nums[i], nums[i-1] + 1 के बराबर नहीं है, तो:
- ans के अंत में [l, nums[i-1]] डालें
- l := nums[i]
- यदि nums[i], nums[i-1] + 1 के बराबर नहीं है, तो:
- ans वापस करें
उदाहरण
class Solution:
def solve(self, nums):
nums.sort()
nums.append(1e9)
ans = []
l = nums[0]
for i in range(1, len(nums)):
if nums[i] != nums[i-1] + 1:
ans.append([l, nums[i-1]])
l = nums[i]
return ans
ob = Solution()
nums = [10, 11, 12, 15, 16, 17, 28, 30]
print(ob.solve(nums))
इनपुट
[10, 11, 12, 15, 16, 17, 28, 30]
आउटपुट
[[10, 12], [15, 17], [28, 28], [30, 30]]