将非连续值的int数组拆分为几个连续的int数组

Nan*_*ncy 0 java

int[] big = {1,2,3,5,11,12,13,25,26};
Run Code Online (Sandbox Code Playgroud)

doSomething将连续的元素组合在一起如何将"大"分成这个:

{{1,2,3},{5},{11,12,13},{25,26}}
Run Code Online (Sandbox Code Playgroud)

我已经开始使用这段代码:

public List<Integer> getR(){
    Integer[] big = {1,2,3,5,11,12,13,25,26};
    List<Integer> a = new ArrayList<Integer>();
    for(int i=0;i<big.length;i++){
        if(big[i]==big[i+1]-1){
            continue;
        }else{
            //...
        }
        //...
    }
    //...
}
Run Code Online (Sandbox Code Playgroud)

Vai*_*esh 8

我可以给你伪代码.

  1. 迭代数组.
  2. 将第一个元素添加到另一个数组并前进一步.
  3. 查看当前元素是否为前一个数字+ 1
  4. 如果是,则添加到第二个数组
  5. 否则,创建一个新数组并添加到它.
  6. 重复步骤3到5直到你到达终点.

现在你有阵列了.如果一切都已经连续,你基本上已经为第一个数组创建了一个副本.

  • 这听起来像我的作业......:S (5认同)
  • @TimBender即使如此,"我希望这个转换成这个,给我代码"仍然不是网站的目的,是吗?Vaishak的伪代码在当前场景中是完美的.如果OP无法处理数组上的迭代,那么在他/她获得基本知识之前,他可能不应该对任何应用程序执行任何操作. (2认同)