当前位置: 面试刷题>> 寻找数据错误 (经典算法题500道)


题目描述补充

给定一个整数数组,数组中的元素按照非递减顺序排列(即每个元素可能等于或大于前一个元素),但其中可能包含一个或多个错误的数据点,这些错误的数据点破坏了数组的非递减顺序。请编写一个函数来找出数组中第一个错误的数据点,即第一个不满足非递减顺序的元素的索引。如果不存在这样的错误点,则返回数组的长度作为结果,表示数组已完全按非递减顺序排列。

示例输入

[1, 2, 4, 6, 0, 8]

示例输出

4

解释: 数组 [1, 2, 4, 6, 0, 8] 中,索引 4 处的元素 0 小于索引 3 处的元素 6,破坏了非递减顺序,因此第一个错误的数据点索引是 4。

PHP 示例代码

function findFirstErrorIndex($nums) {
    $n = count($nums);
    for ($i = 1; $i < $n; $i++) {
        if ($nums[$i] < $nums[$i - 1]) {
            return $i;
        }
    }
    return $n; // 如果没有找到错误点,返回数组长度
}

// 测试示例
$nums = [1, 2, 4, 6, 0, 8];
echo findFirstErrorIndex($nums); // 输出: 4

Python 示例代码

def find_first_error_index(nums):
    n = len(nums)
    for i in range(1, n):
        if nums[i] < nums[i - 1]:
            return i
    return n # 如果没有找到错误点,返回数组长度

# 测试示例
nums = [1, 2, 4, 6, 0, 8]
print(find_first_error_index(nums)) # 输出: 4

JavaScript 示例代码

function findFirstErrorIndex(nums) {
    const n = nums.length;
    for (let i = 1; i < n; i++) {
        if (nums[i] < nums[i - 1]) {
            return i;
        }
    }
    return n; // 如果没有找到错误点,返回数组长度
}

// 测试示例
const nums = [1, 2, 4, 6, 0, 8];
console.log(findFirstErrorIndex(nums)); // 输出: 4

// 码小课网站中有更多相关内容分享给大家学习

通过这些示例代码,你可以看到如何遍历数组并找到第一个破坏非递减顺序的元素索引。如果没有发现这样的错误点,则返回数组的长度。