मान लीजिए कि हमारे पास आकार N की एक सरणी है; हमें एक ऐसा तत्व खोजना है जो समान उत्पाद के साथ सरणी को दो अलग-अलग उप-सरणी में विभाजित करता है। वापसी -1 यदि ऐसा कोई विभाजन संभव नहीं है।
इसलिए, यदि इनपुट [2,5,3,2,5] जैसा है, तो आउटपुट 3 होगा तो उप-सरणी हैं:{2, 5} और {2, 5}
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- n :=सरणी का आकार
- multiply_pref :=एक नई सूची
- multiple_pref के अंत में सरणी [0] डालें
- 1 से n की श्रेणी में i के लिए, करें
- multiply_pref[i-1]*array[i] के अंत मेंmultiply_pref[i-1]*array[i] डालें
- multiply_suff :=आकार n की सूची, और कोई नहीं भरें
- multiply_suff[n-1] :=array[n-1]
- n-2 से -1 की श्रेणी में i के लिए, 1 से घटाएं
- multiply_suff[i] :=multiply_suff[i+1]*array[i]
- 1 से n-1 की श्रेणी में i के लिए, करें
- यदि गुणा_प्रेफ[i], गुणा_सफ[i] के समान है, तो
- रिटर्न ऐरे[i]
- यदि गुणा_प्रेफ[i], गुणा_सफ[i] के समान है, तो
- वापसी -1
उदाहरण कोड
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def search_elem(array): n = len(array) multiply_pref = [] multiply_pref.append(array[0]) for i in range(1, n): multiply_pref.append(multiply_pref[i-1]*array[i]) multiply_suff = [None for i in range(0, n)] multiply_suff[n-1] = array[n-1] for i in range(n-2, -1, -1): multiply_suff[i] = multiply_suff[i+1]*array[i] for i in range(1, n-1): if multiply_pref[i] == multiply_suff[i]: return array[i] return -1 array = [2,5,3,2,5] print(search_elem(array))
इनपुट
[2,5,3,2,5]
आउटपुट
3