用于长整数值和数字的数组。我需要遍历数组中的元素,并在元素等于number时将number的值加倍。此外,可以在迭代之前对数组重新排序,以最大化number的值。需要找到最大数量
这是我不正确的代码!
任何帮助都将不胜感激
def doubnum(arr,num):
for i in arr:
if i==num:
num=num*2
return num
doubnum([1,2,4,11,12,8],2)
例如[1,2,4,11,12,8],2 should be 16
的输出
Tags:
这似乎对我有用。我正在使用Python 3
代码:
这是16张
或
在此之后,您不必担心重新排序
@Chris关于排序
arr
的评论首先会起作用,但在平均时间复杂度方面不必要地花费O(n logn)如果先将给定数组转换为一个集合,然后在
while
循环中加倍num
,直到在集合中不再找到num
,则问题可以在线性时间复杂度O(n)中解决:因此(注意
8
前面的2
和4
):将正确返回:
16
相关问题 更多 >
编程相关推荐