private static void deleteFrom(int deleteAt,int[] starts,int numStarts){
  while (starts[--numStarts] > deleteAt) {
    starts[numStarts]-=1;
  }
}

private static void deleteFrom ( int deleteAt , int [ ] starts , int numStarts ) { while ( starts [ -- numStarts ] > deleteAt ) { starts [ numStarts ] -= 1 ; } }
adjust indices in starts to reflect a deletion after deleteat . any index in starts greater than deleteat will be increased by 1 . it is the caller ' s responsibility to make sure that no 0 - length runs result .
