मान लीजिए हमारे पास nums नामक एक सरणी है और यह गैर-घटते क्रम में क्रमबद्ध है। हमें result नामक एक सरणी बनानी है जिसकी लंबाई nums के समान हो जैसे कि result[i], nums[i] और सरणी के अन्य सभी तत्वों के बीच निरपेक्ष अंतरों का योग हो।
इसलिए, यदि इनपुट है nums = [5,7,12], तो आउटपुट [9, 7, 12] होगा क्योंकि
- |5-5| + |5-7| + |5-12| = 0+2+7 = 9
- |7-5| + |7-7| + |7-12| = 2+0+5 = 7
- |5-12| + |7-12| + |12-12| = 7+5+0 = 12
इसे हल करने के लिए, हम निम्न चरणों का पालन करेंगे:
- res := एक नई सूची
- s := 0
- n := nums का आकार
- i को 1 से n - 1 तक के लिए, करें
- s := s + nums[i] - nums[0]
- s को res के अंत में डालें
- i को 1 से n - 1 तक के लिए, करें
- diff := nums[i] - nums[i-1]
- s := s + diff*i
- s := s - diff*(n-i)
- s को res के अंत में डालें
- res वापस करें
उदाहरण
बेहतर समझ के लिए निम्न कार्यान्वयन देखें:
def solve(nums):
res = []
s = 0
n = len(nums)
for i in range(1, n):
s += nums[i] - nums[0]
res.append(s)
for i in range(1, n):
diff = nums[i] - nums[i-1]
s += diff * i
s -= diff * (n - i)
res.append(s)
return res
nums = [5,7,12]
print(solve(nums))
इनपुट
[5,7,12]
आउटपुट
[9, 7, 12]