मान लीजिए कि हमारे पास n ऑब्जेक्ट्स वाला एक ऐरे है। ये लाल, सफेद या नीले रंग के होते हैं, इन्हें जगह-जगह छाँटें ताकि एक ही रंग की वस्तुएँ सटे हों। तो लाल, सफेद और नीले रंग के क्रम में रंगों के साथ। यहां, हम क्रमशः लाल, सफेद और नीले रंग का प्रतिनिधित्व करने के लिए 0, 1, और 2 जैसी संख्याओं का उपयोग करेंगे। तो अगर सरणी [2,0,2,1,1,0] की तरह है, तो आउटपुट [0,0,1,1,2,2]
होगाइसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- निम्न सेट करें:=0, मध्य:=0 और उच्च:=सरणी की लंबाई - 1
- मध्य में <=उच्च
- अगर arr[mid] =0 है, तो arr[mid] और arr[low] की अदला-बदली करें, और कम और बीच में 1 तक बढ़ाएं
- अन्यथा जब arr[mid] =2, arr[high] और arr[mid] स्वैप करें, तो उच्च 1 तक घटाएं
- अन्यथा 1 के बीच में वृद्धि
उदाहरण (पायथन)
एक बेहतर समझ प्राप्त करने के लिए आइए निम्नलिखित कार्यान्वयन को देखें -
class Solution(object): def sortColors(self, nums): low = 0 mid = 0 high = len(nums)-1 while mid<=high: if nums[mid] == 0: nums[low],nums[mid] = nums[mid],nums[low] low+=1 mid += 1 elif nums[mid] == 2: nums[high], nums[mid] = nums[mid], nums[high] high-=1 else: mid += 1 return nums ob1 = Solution() print(ob1.sortColors([2,0,2,1,1,0]))
इनपुट
[2,0,2,1,1,0]
आउटपुट
[0,0,1,1,2,2]