gpt4 book ai didi

python-3.x - 计算列表中重复项的算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:26:10 25 4
gpt4 key购买 nike

下面的代码打印出在 A 中重复的数字。根据我的理解,for 循环遍历列表中的每个元素并将其变成一个负数,但我不明白为什么它不将它打印的数字(位于位置 0、4、5)变成负数.

A = [1,2,3,1,3,6,6]
def printRepeating(arr, size):

print("The repeating elements are: ")

for i,x in enumerate(arr):

if arr[abs(arr[i])] >= 0:

arr[abs(arr[i])] = -arr[abs(arr[i])]
print(arr)
else:
print (abs(arr[i]), end = " ")
printRepeating(A,len(A))

最佳答案

算法假定:

  1. 数组的所有元素都以正数开头,并且
  2. 数组的所有元素都小于数组的长度。

在您的示例中,由于数组的长度为 7,因此数组中的所有元素都必须介于 1 和 6 之间。

算法所做的是将 array[k] 更改为负值,以指示已看到 k。例如,由于 1 是第一个看到的数字,array[1] 被更改为负数。下一次看到 1 时,array[1] 已经是负数,所以 1 一定是重复的。

关于python-3.x - 计算列表中重复项的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58440914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com