मान लीजिए कि हमारे पास एक सरणी है जिसमें विभिन्न पूर्णांक मान और दी गई लंबाई k है। हमें दी गई लंबाई की सरणी से सबसे बड़ी उपसरणी का पता लगाना है। एक सबअरे को दूसरे सबअरे से बड़ा कहा जाता है, अगर सबअरे1[i] ≠ सबअर्री2[i] और सबअरे1[i]> सबअरेरी2[i]।
इसलिए, यदि इनपुट nums =[5, 3, 7, 9], k =2 जैसा है, तो आउटपुट [7, 9] होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- प्रारंभ :=अंकों का आकार - k
- max_element :=nums[start]
- max_index :=start
- शुरू करते समय>=0, करें
- यदि अंक [शुरू]> max_element गैर-शून्य है, तो
- max_element :=nums[start]
- max_index :=start
- वापसी संख्या [सूचकांक max_index से max_index + k]
- यदि अंक [शुरू]> max_element गैर-शून्य है, तो
- वापसी संख्या [सूचकांक max_index से max_index + k]
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
def solve(nums, k): start = len(nums) - k max_element = nums[start] max_index = start while start >= 0: if nums[start] > max_element: max_element = nums[start] max_index = start start -= 1 return nums[max_index:max_index + k] print(solve([5, 3, 7, 9], 2))
इनपुट
[5, 3, 7, 9], 2
आउटपुट
[7, 9]