Python 中的 Max 函数给出了错误的答案

问题描述 投票:0回答:1

我试图在 leetcode 中求解一个和,我使用的代码是这个,但是它失败了一个测试用例,所以我在 IDLE 中尝试了它

ratings=[1,3,4,5,2]
left=[1]*len(ratings)
right=left
cnt=0
for i in range(1,len(ratings)):
    if ratings[i]>ratings[i-1]:
        left[i]=left[i-1]+1
print(left)
for i in range(len(ratings)-2,-1,-1):
    if ratings[i]>ratings[i+1]:
        right[i]=right[i+1]+1
print(right)
for i in range(0,len(ratings)):
    print(max(left[i],right[i]))

预期输出:
[1,2,3,4,1]
[1,2,3,2,1]
1
2
3
4
1

但是我在idle和leetcode中得到的输出是:
[1,2,3,4,1]
[1,2,3,2,1]
1
2
3
2
1
(https://i.stack.imgur.com/5dIGP.png)

python-3.x max python-idle
1个回答
0
投票

如果我们不希望必须使用 right=left[:] 而不是 right=left,则仅使用“=”会使列表相互引用(当 1 更改时,另一个也会更改)

© www.soinside.com 2019 - 2024. All rights reserved.