假设我有一个已排序的数组{1, 2, 3, 4, 5, 7, 8, 9, 10, 15, 16, 21, 23, 25, 26}
。我想按以下方式将这些元素放入区间中:
1..5
7..10
15..16
21..21
23..23
25..26
实际上,我的数据量很大,因此我需要一个运行时间较好的算法。
我考虑的是以下方法:将数组分成2部分,并用4个循环遍历数组。第1个循环从0索引开始,第2个循环从数组中间开始,第3个循环从末尾开始,每个循环都会检查当前元素和下一个元素之间的差是否为1,如果是,则继续到下一个元素,否则从前面的元素创建一个区间,并从下一个元素开始创建新的区间。
我的问题是这是否是一种好的方法,还是有更好的方法?请提供伪代码或Java代码。
int[] originalArray
和int[][] intervals
(其中对于所有i < intervals.length
,intervals[i].length == 2
)作为参数?请澄清输入的数据类型以及期望的输出数据类型。此外,您是否已经尝试编写过这个方法?您能分享一下您所做的吗? - Blake