मान लीजिए कि हमारे पास अलग-अलग संख्याओं की एक सरणी है जहां प्रत्येक संख्या [1, N] की सीमा में है, सरणी का आकार (N-4) है और कोई एकल तत्व दोहराया नहीं जाता है। तो, हम समझ सकते हैं कि चार संख्याएँ, 1 से N तक, सरणी में गायब हैं। हमें इन 4 लापता संख्याओं को क्रमबद्ध तरीके से खोजना होगा।
इसलिए, यदि इनपुट ए =[2, 8, 4, 13, 6, 11, 9, 5, 10] जैसा है, तो आउटपुट [1, 3, 7, 12]
होगा।इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
temp_arr :=सभी 0s के साथ आकार 4 की एक सरणी
-
मैं के लिए 0 से A के आकार की सीमा में, ऐसा करें
-
अस्थायी:=|ए[i]|
-
अगर अस्थायी <=A का आकार, तो
-
ए [अस्थायी -1]:=ए [अस्थायी -1] *(-1)
-
-
अन्यथा जब अस्थायी> A का आकार, तब
-
यदि ए का अस्थायी मॉड आकार गैर-शून्य है, तो
-
temp_arr[temp mod size of A-1] :=-1
-
-
अन्यथा,
-
temp_arr[(अस्थायी रूप से A का आकार) + A-1 का आकार]:=-1
-
-
-
-
मैं के लिए 0 से A के आकार की सीमा में, ऐसा करें
-
अगर ए[i]> 0, तो
-
डिस्प्ले मैं + 1
-
-
-
मैं के लिए 0 से लेकर temp_arr के आकार तक के लिए, करें
-
अगर temp_arr[i]>=0, तो
-
ए + आई + 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