का उपयोग कर सूची में दूसरा सबसे छोटा नंबर खोजें मुझे पता है कि इस विषय पर एक प्रश्न पूछा गया है, लेकिन किसी भी उत्तर ने मेरी मदद नहीं की है। मुझे कोड को लागू करने में मदद की ज़रूरत नहीं है, मुझे इसके लिए रिकर्सिव प्रक्रिया के माध्यम से छंटनी में मदद की ज़रूरत है।रिकर्सन
मैं मूल रूप से सोच रहा था कि प्रत्येक स्तर पर एक ट्यूपल लौटाएं और दूसरा सबसे छोटा मूल्य ढूंढने की तुलना करें। लेकिन यह काम नहीं करता है क्योंकि मैं चाहता हूं कि मेरा कार्य केवल अंत में 1 मान लौटाए- दूसरा सबसे छोटा मूल्य।
मैं इस समस्या के लिए पुनरावर्ती प्रक्रिया के बारे में कैसे जाऊं? धन्यवाद!
संपादित करें: पर्याप्त विवरण सहित शामिल होने के बारे में क्षमा करें, इसलिए यहां जाता है।
समारोह के रूप में काम करना चाहिए इस प्रकार है:
>>> sm([1,3,2,1,3,2])
>>> 2
दूसरा संपादित करें: देरी के लिए क्षमा करें, मैं व्यस्त था अब तक, अंत में बैठ जाओ और डाल मैं क्या कोड में मन में था करने में सक्षम था। यह इरादे के रूप में काम करता है, लेकिन मैं ईमानदारी से सोचता हूं कि यह रिकर्सन करने का एक बहुत ही शर्मनाक और अक्षम तरीका है, क्योंकि आप शायद बता सकते हैं कि मैं अवधारणा के लिए नया हूं।
नीचे दिए गए छद्म कोड का उपयोग करके मेरे मूल प्रश्न को फिर से भरने के लिए: क्या मैंने ऐसा किया है जो मैंने किया था, लेकिन इसे दूसरे फ़ंक्शन में लपेटने के बिना? यही है, क्या यह एक ऐसा कार्य होना संभव है जो केवल अपने आप को कॉल करता है, और 1 नंबर लौटाता है- दूसरा सबसे छोटा नंबर?
def second_smallest(list):
def sm(list):
if base case(len of list == 2):
return ordered list [2nd smallest, smallest]
else:
*recursive call here*
compare list[0] with returned ordered list
eg: [3, [5,2]]
re-arrange, and return a new ordered list
[3,2]
return sm(list)[0]
क्या संख्याएं अलग हैं? यदि सूची [2,1,2,1,3,5] है तो दूसरी सबसे छोटी संख्या क्या है? –
उल्लेख करने में भूल गए, वे दोहराए जा सकते हैं ताकि आपके द्वारा दी गई सूची में 2 हो। और सूची की न्यूनतम लंबाई 2 भी होगी। – gptt916
दूसरे पैराग्राफ के साथ संयोजन में psuedocode या यहां तक कि वास्तविक कोड भी उपयोगी होगा, इसलिए हम जानते हैं कि आपके पास क्या है। –