You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查找数组中第一个非连续元素?附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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:13:24