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]
。有人能为这个答案提供正确的代码吗?或者请在我出错的地方更正我的代码