小编arn*_*e15的帖子

Codility OddOccurrencesInArray 问题 - 递归和 Python

我正在尝试使用递归来解决 Codility 中的 OddOccurrencesInArray 问题,其中

  • 给定一个包含 N 个元素的数组,N 始终为奇数
  • 数组中除一个元素外的所有元素的出现总次数为偶数
  • 我们需要编写返回一个不成对值的代码

例如,如果给定的数组是 [9, 3, 9, 3, 7, 9, 9],则代码必须返回 7,因为这是数组中唯一未配对的元素。

我的解决方案伪代码/思考过程是:

  • 对数组进行排序
  • 如果前两个元素彼此相等,则删除它们并在数组减去前两个元素(排序后)上再次递归运行求解算法,即如果未找到不成对的元素,我们将继续减小数组的大小
  • 如果前两个元素不相等,则数组的第一个元素必须是不成对的项

我的实现是:

def solution(A):
    # write your code in Python 3.6
    if len(A) > 1: 
        A = sorted(A)
        if A[0] != A[1]:
            return A[0]
        else:
            solution(A[2:])
    else:
        return A[0]
Run Code Online (Sandbox Code Playgroud)

我不断收到错误消息

结果类型无效,应为 int,发现 <class 'NoneType'>。运行时错误(测试程序以退出代码 1 终止)

谁能帮我弄清楚这意味着什么以及如何纠正它?从算法上讲,我认为我的解决方案是合理的,并且我不明白为什么它没有返回我指定的整数值。

python arrays recursion nonetype

4
推荐指数
2
解决办法
5142
查看次数

标签 统计

arrays ×1

nonetype ×1

python ×1

recursion ×1