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

如何按相邻元素差值≥7的规则拆分整数列表为子列表?

整数列表按相邻差值拆分的需求与实现

输入列表

List<Integer> integerList = [1,2,4,11,14,15,16,16,19,30,31,50,51,100,101,105];

期望输出

拆分后得到的子列表集合:

List<List<Integer>> sub = [[1,2,4],[11,14,15,16,16,19],[30,31],[50,51],[100,101,105]];

拆分规则

遍历列表时,若当前元素与前一个元素的差值≥7,就将此处作为拆分点,把前后元素划分到不同的子列表中。本次拆分的几个关键差值分别为7(4→11)、11(19→30)、19(31→50)、49(51→100),全部符合≥7的拆分条件。

实现示例(Java)

import java.util.ArrayList;
import java.util.List;

public class ListSplitter {
    public static void main(String[] args) {
        List<Integer> integerList = List.of(1,2,4,11,14,15,16,16,19,30,31,50,51,100,101,105);
        List<List<Integer>> splitResult = new ArrayList<>();

        // 处理空列表的边界情况
        if (integerList.isEmpty()) {
            System.out.println(splitResult);
            return;
        }

        List<Integer> currentGroup = new ArrayList<>();
        currentGroup.add(integerList.get(0));

        for (int i = 1; i < integerList.size(); i++) {
            int prevNum = integerList.get(i-1);
            int currNum = integerList.get(i);
            // 满足差值条件则拆分
            if (currNum - prevNum >= 7) {
                splitResult.add(currentGroup);
                currentGroup = new ArrayList<>();
            }
            currentGroup.add(currNum);
        }
        // 添加最后一组元素
        splitResult.add(currentGroup);

        System.out.println(splitResult);
    }
}

内容的提问来源于stack exchange,提问作者Muhammed Sibil

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 08:15:52