如何查找数组中第一个非连续元素?附Java代码实现思路
找出数组中第一个非连续元素的Java实现
首先明确任务要求:
找出数组中第一个非连续元素。示例:数组
[1,2,3,4,6,7,8]里,1、2、3、4均连续,6是第一个非连续元素;若数组整体连续则返回null。
实现思路
- 从数组的第二个元素(索引1)开始遍历,逐个和前一个元素对比
- 如果当前元素的值 不等于前一个元素+1,那它就是我们要找的第一个非连续元素
- 要是遍历完整个数组都没找到符合条件的元素,说明数组完全连续,返回
null
完整代码实现
import java.util.ArrayList; import java.util.List; class FirstNonConsecutive { public static void main(String[] args) { // 测试存在非连续元素的数组 int[] testArr1 = new int[]{1, 2, 3, 4, 6, 7, 8}; Integer result1 = findFirstNonConsecutive(testArr1); System.out.println("第一个非连续元素:" + result1); // 输出6 // 测试完全连续的数组 int[] testArr2 = new int[]{1, 2, 3, 4, 5, 6, 7, 8}; Integer result2 = findFirstNonConsecutive(testArr2); System.out.println("第一个非连续元素:" + result2); // 输出null } private static Integer findFirstNonConsecutive(int[] arr) { // 处理边界情况:空数组或仅有一个元素时直接返回null if (arr == null || arr.length <= 1) { return null; } for (int i = 1; i < arr.length; i++) { // 判断当前元素是否与前一个元素连续 if (arr[i] != arr[i-1] + 1) { return arr[i]; } } // 遍历结束未找到非连续元素,返回null return null; } }
代码关键点说明
- 方法返回类型用
Integer而非int,因为需要支持返回null(基本类型int无法为null) - 先做边界处理,避免数组越界问题,同时符合“无连续问题则返回null”的要求
- 遍历逻辑高效:找到第一个不符合条件的元素就立即返回,无需遍历整个数组
内容的提问来源于stack exchange,提问作者IMBABOT
相关产品推荐
相关产品推荐

