📌  相关文章
📜  检查数组是否是从 1 到 N 的数字排列(1)

📅  最后修改于: 2023-12-03 14:55:47.304000             🧑  作者: Mango

检查数组是否是从 1 到 N 的数字排列

当我们需要判断一个数组是否是从 1 到 N 的数字排列时,我们需要比较数组元素与 1 到 N 的数字是否一一对应。下面介绍两种实现方法。

方法一:逐一比较

可以逐一遍历数组,比较每一个元素是否等于它应该对应的数字。代码如下:

def is_sorted(arr):
    n = len(arr)
    for i in range(n):
        if arr[i] != i + 1:
            return False
    return True

其中,n 表示数组的长度,arr[i] 表示数组中第 i 个元素的值,i+1 表示应该对应的数字。如果数组中任意一个元素与应该对应的数字不相等,则说明该数组不是从 1 到 N 的数字排列。

方法二:排序后比较

也可以先对数组排序,再逐一比较元素是否等于它应该对应的数字。代码如下:

def is_sorted(arr):
    n = len(arr)
    arr.sort()
    for i in range(n):
        if arr[i] != i + 1:
            return False
    return True

其中,arr.sort() 表示对数组进行排序,n 表示数组的长度,arr[i] 表示数组中第 i 个元素的值,i+1 表示应该对应的数字。如果数组中任意一个元素与应该对应的数字不相等,则说明该数组不是从 1 到 N 的数字排列。

以上两种方法都可以用于判断一个数组是否是从 1 到 N 的数字排列,使用上述方法,我们可以轻松地完成该任务。