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


**题目描述补充**: 给定一个整数数组,数组中的元素按照非递减顺序排列(即每个元素可能等于或大于前一个元素),但其中可能包含一个或多个错误的数据点,这些错误的数据点破坏了数组的非递减顺序。请编写一个函数来找出数组中第一个错误的数据点,即第一个不满足非递减顺序的元素的索引。如果不存在这样的错误点,则返回数组的长度作为结果,表示数组已完全按非递减顺序排列。 **示例输入**: ``` [1, 2, 4, 6, 0, 8] ``` **示例输出**: ``` 4 ``` **解释**: 数组 `[1, 2, 4, 6, 0, 8]` 中,索引 4 处的元素 0 小于索引 3 处的元素 6,破坏了非递减顺序,因此第一个错误的数据点索引是 4。 **PHP 示例代码**: ```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 示例代码**: ```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 示例代码**: ```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 // 码小课网站中有更多相关内容分享给大家学习 ``` 通过这些示例代码,你可以看到如何遍历数组并找到第一个破坏非递减顺序的元素索引。如果没有发现这样的错误点,则返回数组的长度。
推荐面试题