我列了一张单子:
first = [100, 110, 60]
如何做到:如果下一个数大于前一个数,则需要像前一个数一样减少此数,例如,答案应为:
ans = [100, 100, 60]
第二个例子:
arr = [60,50,60]
ans = [60, 50, 50]
第三个例子:
arr = [20, 100, 150]
ans = [20, 20, 20]
我试过,但我觉得这不是个好主意
for i in range(len(arr)-1):
if arr[i] < arr[i+1]:
answer.append(a[i+1] - 10)
if arr[i] < arr[i+1]:
answer.append(a[i])
if arr[i] < arr [i+1]:
answer.append(arr[-1])
6条答案
按热度按时间g6ll5ycj1#
这是scan/prefix sum operation的一个特例,在Python中是
itertools.accumulate
:基本上,这将输出一个列表,该列表在每个位置包含输入列表中到该位置为止的最小元素。
toe950272#
这将在 * 原地 * 修改列表:
py49o6xq3#
不是一句俏皮话,而是
luaexgnf4#
我认为它应该按照以下方式工作:
i2byvkas5#
希望这个有用。
u5rb5r596#
下面是另一个使用列表理解的替代方法,供感兴趣的读者参考。
下面是一个例子:
代码:
输出: