मान लीजिए हमारे पास अलग-अलग संख्याओं की एक सरणी है जहां प्रत्येक संख्या [1, N] सीमा में है, सरणी का आकार (N-4) है और कोई एकल तत्व दोहराया नहीं गया है। तो, हम समझ सकते हैं कि 1 से N तक चार संख्याएं सरणी में गायब हैं। हमें इन 4 लापता संख्याओं को क्रमबद्ध तरीके से ढूंढना है।
तो, यदि इनपुट A =[2, 8, 4, 13, 6, 11, 9, 5, 10] की तरह है, तो आउटपुट [1, 3, 7, 12] होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
temp_arr := सभी 0 के साथ 4 आकार की एक सरणी
i के लिए 0 से A के आकार की सीमा में, करें
temp := |A[i]|
यदि temp <= A का आकार, तो
A[temp - 1] := A[temp - 1] * (-1)
अन्यथा जब temp > A का आकार, तो
यदि temp mod A का आकार शून्येतर है, तो
temp_arr[temp mod A का आकार - 1] := -1
अन्यथा,
temp_arr[(temp mod A का आकार) + A का आकार - 1] := -1
i के लिए 0 से A के आकार की सीमा में, करें
यदि A[i] > 0, तो
i + 1 प्रदर्शित करें
i के लिए 0 से temp_arr के आकार की सीमा में, करें
यदि temp_arr[i] >= 0, तो
A का आकार + i + 1 प्रदर्शित करें
उदाहरण
बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def find_missing_nums(A) : temp_arr = [0]*4 for i in range(0,len(A)) : temp = abs(A[i]) if (temp <= len(A)) : A[temp - 1] = A[temp - 1] * (-1) elif (temp > len(A)) : if (temp % len(A)) : temp_arr[temp % len(A) - 1] = -1 else : temp_arr[(temp % len(A)) +len(A) - 1] = -1 for i in range(0, len(A) ) : if (A[i] > 0) : print((i + 1) , end=" ") for i in range(0, len(temp_arr)) : if (temp_arr[i] >= 0) : print((len(A) + i + 1) , end=" ") A = [2, 8, 4, 13, 6, 11, 9, 5, 10] find_missing_nums(A)
इनपुट
[2, 8, 4, 13, 6, 11, 9, 5, 10]
आउटपुट
1 3 7 12