gpt4 book ai didi

java - 对在 Java 中跳过数字的整数数组进行分组

转载 作者:行者123 更新时间:2023-11-29 03:21:12 25 4
gpt4 key购买 nike

假设我有以下 int array:

[1,2,3,6,7, 8, 9,20, 22]

我希望能够根据上面的 array 向用户显示以下内容:

Numbers 1 through 3, 6 through 9, 20, 22

我该怎么做呢?本质上是检查前一个数字是否等于当前数字 - 1?我想我只是回答了我自己的问题,但欢迎任何快捷方式/指针。

注意:只处理整数,没有负数(不会是整数吧)。

最佳答案

可以找到使用 Ideone 的实例 here .在 O(n) 时间内运行。


Integer[] A = {1, 2, 3, 6, 7, 8, 9, 20, 22};
int start = 0, end;

System.out.print("Numbers ");
while((end = start) < A.length){
// Increment the 'end' pointer while consecutive numbers exist.
while(end + 1 < A.length && A[end + 1] == A[end] + 1) end++;

// If end == start: 'A[start]'
// Else : 'A[start] through A[end]'
System.out.print(A[start] +
(end == start ? "":(" through " + A[end])) +
(end < A.length - 1 ? ", ":""));

// Increment start pointer to next element in A
start = end + 1;
}

关于java - 对在 Java 中跳过数字的整数数组进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23553073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com