9.3---微众银行笔试第二题---捏泥巴人
题目描述: 输入一个n,代表数组长度 接下来输入一个数组nums,然后你可以任意给数组元素加值,加多少都行 问:最少加多少(总和),能够让数组没有重复元素
思路:
先排序
然后从第2个元素开始遍历到最后,只要这个元素小于等于上一个元素,就让它等于上一个元素+1(贪心),然后res+=(更新值减去原值)
代码:
#贪心
while(1):
n = input().strip()
if len(n)<=0:break
n = int(n)
line2 = input().strip()
nums = [int(x) for x in line2.split(' ')]
res = 0
for i in range(1,n):
if nums[i]<=nums[i-1]:
res+=(nums[i-1]+1-nums[i])
nums[i] = nums[i-1]+1
print(res)
#晒一晒我的offer##webank##笔试#
查看7道真题和解析