मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है, जहां तत्वों को आरोही क्रम में क्रमबद्ध किया जाता है, हमें तत्वों को वर्गाकार करना होगा और परिणाम को क्रमबद्ध क्रम में वापस करना होगा।
इसलिए, यदि इनपुट nums =[-8, -3, 0, 5, 6] जैसा है, तो आउटपुट [0, 9, 25, 36, 64]
होगा।इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- n :=अंकों का आकार
- एल :=0
- r :=n - 1
- सूचकांक :=n - 1
- res :=अंकों के समान आकार की एक सूची और इसे 0 से भरें
- जबकि अनुक्रमणिका>=0, करें
- अगर |nums[l]|> |nums[r]|, फिर
- res[index] :=nums[l] * nums[l]
- एल :=एल + 1
- अन्यथा,
- res[index] :=nums[r] * nums[r]
- r :=r - 1
- सूचकांक :=अनुक्रमणिका - 1
- अगर |nums[l]|> |nums[r]|, फिर
- रिटर्न रेस
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def solve(nums): n = len(nums) l = 0 r = n - 1 index = n - 1 res = [0 for i in range(len(nums))] while index >= 0: if abs(nums[l]) > abs(nums[r]): res[index] = nums[l] * nums[l] l += 1 else: res[index] = nums[r] * nums[r] r -= 1 index -= 1 return res nums = [-8, -3, 0, 5, 6] print(solve(nums))
इनपुट
[-8, -3, 0, 5, 6]
आउटपुट
[0, 9, 25, 36, 64]