मान लीजिए हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है। यदि अंकों में सबसे लगातार संख्या की आवृत्ति k है। हमें एक छोटी से छोटी उप-सूची की लंबाई इस प्रकार ज्ञात करनी होगी कि उसके सबसे अधिक बार आने वाले आइटम की आवृत्ति भी k हो।
इसलिए, यदि इनपुट nums =[10, 20, 30, 40, 30, 10] की तरह है, तो आउटपुट 3 होगा, क्योंकि यहाँ सबसे अधिक संख्याएँ 10 और 30 हैं, यहाँ k =2 है। सबलिस्ट [30, 40, 30] यह सबसे छोटा सबलिस्ट है जहाँ 30 मौजूद है और इसकी आवृत्ति भी 2 है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- L :=अंकों का आकार
- rnums :=अंकों का उल्टा
- d :=एक नक्शा जिसमें अंकों में मौजूद प्रत्येक तत्व की बारंबारता होती है
- mx :=d के सभी मानों की अधिकतम सूची
- बनाम :=d में प्रत्येक k के लिए k की सूची यदि d[k] mx के समान है
- mn:=एल
- प्रत्येक बनाम बनाम, के लिए
- mn :=न्यूनतम mn और ((L - (Rnums में v का सूचकांक) - (संख्या में v का सूचकांक))
- रिटर्न एमएन
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
संग्रह से डी अगर डी [के] ==एमएक्स] एमएन =एल बनाम वी के लिए:एमएन =मिनट (एमएन, (एल - rnums.index (v)) - nums.index (v)) वापसी mnnums =[10, 20, 30, 40, 30, 10]प्रिंट(समाधान(अंक))इनपुट
[10, 20, 30, 40, 30, 10]
आउटपुट
3