Python 尽量降低高度
给定一个整数列表,表示Python 尽量降低高度,python,python-3.x,data-structures,Python,Python 3.x,Data Structures,给定一个整数列表,表示N塔的高度,以及一个正整数K,我需要修改每个塔的高度,方法是将其增加或减少K一次 修改后,生成的高度应为非负整数。 目标是找出改造后最短和最长塔架高度的可能最小差异 我已经编写了以下代码来解决这个问题,但它不起作用。如果有任何想法,我将不胜感激 if __name__ == '__main__': tc = int(input()) while tc > 0: k = int(input()) n = int(input
N
塔的高度,以及一个正整数K
,我需要修改每个塔的高度,方法是将其增加或减少K
一次
修改后,生成的高度应为非负整数。
目标是找出改造后最短和最长塔架高度的可能最小差异
我已经编写了以下代码来解决这个问题,但它不起作用。如果有任何想法,我将不胜感激
if __name__ == '__main__':
tc = int(input())
while tc > 0:
k = int(input())
n = int(input())
arr = list(map(int,
input().strip().split()))
ob = Solution()
ans = ob.getMinDiff(arr, n, k)
print(ans)
tc -= 1
class Solution:
def getMinDiff(self, arr, n, k):
arr.sort()
for i in range(0,n):
if(arr[i]<k):
arr[i]=arr[i]+k
else:
arr[i]=arr[i]-k
arr.sort()
return arr[n-1]-arr[0]
如果uuuu name_uuuu=='\uuuuuuu main\uuuuuu':
tc=int(输入())
当tc>0时:
k=int(输入()
n=int(输入())
arr=列表(映射(int,
输入().strip().split())
ob=溶液()
ans=ob.getMinDiff(arr,n,k)
打印(ans)
tc-=1
类解决方案:
def getMinDiff(自身、arr、n、k):
arr.sort()
对于范围(0,n)内的i:
如果(arr[i]您可以指定您的代码在哪些情况下不成功。请提供测试代码。感谢您提供一些问题链接或平台,我可以在其中测试我的解决方案。如果值大于k
,您的代码总是减去k
。对于[98,102]之类的输入,这将失败,k=1
。最好的解决方案是[99101]
,您的将计算[97101]
。有人能为这个答案提供正确的代码吗?或者请在我出错的地方更正我的代码