मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची है, हमें सूची को किसी भी क्रम (आरोही या अवरोही) में क्रमबद्ध करने की न्यूनतम लागत ढूंढनी है। यहां लागत किसी भी तत्व के पुराने और नए मान के बीच अंतर का योग है।
उदाहरण के लिए, यदि इनपुट [2, 5, 4] है, तो आउटपुट 2 होगा।
इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे:
- temp := nums सरणी की कॉपी
- temp सूची को क्रमबद्ध करें
- c1 := 0, c2 := 0
- n := nums का आकार
- i को 0 से n तक के लिए करें:
- यदि nums[i], temp[i] के बराबर नहीं है, तो c1 := c1 + |nums[i] - temp[i]|
- यदि nums[i], temp[n-1-i] के बराबर नहीं है, तो c2 := c2 + |nums[i] - temp[n-i-1]|
- c1 और c2 का न्यूनतम वापस करें
उदाहरण
class Solution:
def solve(self, nums):
temp = nums.copy()
temp.sort()
c1 = 0
c2 = 0
n = len(nums)
for i in range(n):
if nums[i] != temp[i]:
c1 += abs(nums[i] - temp[i])
if nums[i] != temp[n-1-i]:
c2 += abs(nums[i] - temp[n-i-1])
return min(c1, c2)
ob = Solution()
print(ob.solve([2, 5, 4]))
इनपुट
[2, 5, 4]
आउटपुट
2