gpt4 book ai didi

python - 查找排列列表

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

我有一个任务。我知道这个任务真的很简单但是..

给定一个由 N 个整数组成的非空零索引数组 A。排列是包含从 1 到 N 的每个元素一次且仅一次的序列。例如,数组 A 这样:

  • A[0] = 4
  • A[1] = 1
  • A[2] = 3
  • A[3] = 2

是一个排列,但是数组 A 使得:

  • A[0] = 4
  • A[1] = 1
  • A[2] = 3

不是排列。目标是检查数组 A 是否为排列。

我实现了此解决方案,但我认为这不是最佳解决方案。

def solution(A):
# write your code in Python 2.6
maxN = max(A)
B = list(xrange(1,maxN+1))
if sorted(A) == sorted(B):
return 1
else:
return 0

你有什么想法我应该如何解决这个问题吗?

最佳答案

def solution(A):
N = len(A)
return min(A) == 1 and max(A) == N and len(set(A)) == N

这需要(预期的)时间在 N 中呈线性,因此预计比排序更快。但它确实依赖于声明的假设,即所有 列表条目实际上都是整数。如果不是,那么,例如,

>>> solution([1, 2, 4, 3.14159])
True

关于python - 查找排列列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20985588/

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