题目理解(Python)
首先,理解题目描述:
住户以横坐标形式的一维坐标系存在
n,m,a,x分别代表:
n,住户数量。
m,方案个数。
a,居民当前居住位置。
x,方案中对应牛牛想要搬迁到的具***。
则我们通过编程思维则可理解为
n = len(a) 即当前所有住户的数量
m = len(x) 即当前所有方案的数量
a列表中的每个元素即对应 横坐标数字 , 即每个用户居住的位置
x列表中的每个元素也对应 横坐标数字 , 即牛牛将要搬迁至的位置
如图所示:
其次我们通过题意,明确我们需要求出搬家后与最近的居民的距离为多少
则构建编程思路
我们需要比较搬迁位置与每个住户间的距离,并求出最短距离,且最终以
[1,1]列表的形式返回
class Solution: @staticmethod def close(a,x): //因为实际我们用到的参数只有这两个,所以我就没有写n,m alldistancelist = [] finallist = [] for i in x: for j in a: distance = abs(i-j) //abs()求距离差值的绝对值 alldistancelist.append(distance) //append()函数添加至空列表中 mindistance =min(set(alldistancelist)) //set()列表去重后通过min()求出最短距离 finallist.append(mindistance) //将最短距离添加至最终的返回列表中 alldistancelist.clear() //将alldistancelist列表清空,若有两个及以上的搬迁位置时,保证每次循环使用时,初始值为空列表 return finallist
《制作不易,多多点赞,新手上路,不喜勿喷》