题目浅析

  • 想查看原题可以点击题目链接

  • 简单地说,就是给两个数组,现在规定一次操作为对数组一的任意元素进行加一或者减一,对数组二的每个元素,求将数组一的全部数字经多次操作后,全部变成该元素的操作次数。

思路分享

代码解答(强烈建议自行解答后再看)

  • 参考题解
1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution:
def minOperations(self, nums: List[int], queries: List[int]) -> List[int]:

nums.sort()
s = list(accumulate(nums, initial=0))
n = len(nums)
ans = []
for i in queries:
index = bisect_left(nums, i)
left = index*i - s[index]
right = s[n] - s[index] - (n-index)*i
ans.append(left+right)
return ans