连续数字数组分组
连续数字数组分组.[1,2,5,6,7] 分成 [1,2],[5,6,7]
描述
连续数字数组分组.[1,2,5,6,7] 分成 [1,2],[5,6,7],先排序,再分组,连续数字即表示 前一个数字等于下一个数字-1,用伪代码表示就是
preValue = nextValue - 1
实现
方法
/**
* 遍历比较
* 前一个元素 ==后一个元素-1
* @param indexList 传入已经排好序的数组
* @return 分组后的数组列表
*/
public static List<List<Integer>> getColumnsList(List<Integer> indexList){
List<List<Integer>> list = new ArrayList<>();
List<Integer> currentList = new ArrayList<>();
for(int i=0;i<indexList.size();i++){
int currentIndex = indexList.get(i);
if(currentList.size()==0){
currentList.add(currentIndex);
list.add(currentList);
}else{
if(currentIndex-1==currentList.get(currentList.size()-1)){
currentList.add(currentIndex);
}else{
currentList = new ArrayList<>();
currentList.add(currentIndex);
list.add(currentList);
}
}
}
return list;
}