给定一个整数数组,迭代它并找出它涵盖的所有范围的最简单方法是什么?例如,对于如下数组:
$numbers = array(1,3,4,5,6,8,11,12,14,15,16);
范围是:
1,3-6,8,11-12,14-16
Dima.. 14
如果数组按升序排序,则问题很容易.定义一个Range
结构或类,它有一个开头和一个结尾.然后浏览阵列.如果当前元素比前一个元素多一个,则更新Range.end
,否则使用此元素创建一个新范围Range.begin
.将范围存储到动态数组或链接列表.或者只是随时打印出来.
如果可能未对数组进行排序,请先对其进行排序.
如果数组按升序排序,则问题很容易.定义一个Range
结构或类,它有一个开头和一个结尾.然后浏览阵列.如果当前元素比前一个元素多一个,则更新Range.end
,否则使用此元素创建一个新范围Range.begin
.将范围存储到动态数组或链接列表.或者只是随时打印出来.
如果可能未对数组进行排序,请先对其进行排序.