मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची है, हमें सूची को इन-प्लेस अपडेट करके सभी शून्यों को सूची के अंत में रखना है। और अन्य तत्वों का सापेक्ष क्रम नहीं बदलना चाहिए। हमें इसे 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 := 0iको 0 सेLके आकार तक:- यदि
L[i] != 0, तो:L[k] := L[i]k := k + 1
- यदि
jकोkसेLके आकार तक:L[j] := 0
Lलौटाएं।
उदाहरण
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]