मान लीजिए कि हमारे पास संख्याओं की एक सूची है, हमें सूची को जगह में अद्यतन करके सभी शून्यों को सूची के अंत में रखना होगा। और अन्य तत्वों के सापेक्ष क्रम को नहीं बदला जाना चाहिए। हमें इसे O(1) अतिरिक्त स्थान में हल करने का प्रयास करना होगा।
इसलिए, यदि इनपुट [2,0,1,4,0,5,6,4,0,1,7] जैसा है, तो आउटपुट [2, 1, 4, 5, 6, 4, 1 होगा। , 7, 0, 0, 0]
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- यदि L का आकार 0 के समान है, तो
- रिक्त सूची लौटाएं
- k :=0
- i के लिए 0 से L के आकार की सीमा में, करें
- यदि L[i] 0 के समान नहीं है, तो
- एल[के] :=एल[i]
- k :=k + 1
- यदि L[i] 0 के समान नहीं है, तो
- जे रेंज k से L के आकार के लिए, करें
- एल[जे] :=0
- रिटर्न एल
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class Solution: def solve(self, L): if len(L) == 0: return [] k = 0 for i in range(len(L)): if L[i] != 0: L[k] = L[i] k+=1 for j in range(k,len(L)): L[j] = 0 return L ob = Solution() L = [2,0,1,4,0,5,6,4,0,1,7] print(ob.solve(L))
इनपुट
[2,0,1,4,0,5,6,4,0,1,7]
आउटपुट
[2, 1, 4, 5, 6, 4, 1, 7, 0, 0, 0]