小编use*_*808的帖子

Java程序,用于对列表<list>中给定数字的连续编号进行分组

假设你有像这样的唯一数字

11,2,7,6,17,13,8,9,3,5,12
Run Code Online (Sandbox Code Playgroud)

结果将是包含子列表的数字组列表,即,

[2,3]-[5,6,7,8,9]-[11,12,13]-[17]
Run Code Online (Sandbox Code Playgroud)

我采用这种方法来解决这个问题:

int[] a = { 11, 2, 7, 6, 13,17, 8, 9, 3, 5, 12 };

Arrays.sort(a);
List<List<Integer>> ListMain = new ArrayList<>();
List<Integer> temp = new ArrayList<>();

for (int i = 0; i < a.length; i++) {
    if (a[i + 1] == a[i] + 1) {
        temp.add(a[i + 1]);
    } else {
        ListMain.add(temp);
        temp.clear();
    }
}
Run Code Online (Sandbox Code Playgroud)

java algorithm math list

4
推荐指数
1
解决办法
2242
查看次数

标签 统计

algorithm ×1

java ×1

list ×1

math ×1