您的位置:首页 > 其它

拆分出一个数组中的连续数字

2013-01-01 17:21 253 查看
//拆分一个数组中连续的数字,可以参考字符串匹配算法
class Dispart
{
int cnt=0;        //用于判断连续时用
int index= 0;
int[]st;
Dispart(int len){    st = new int[2*len];    }    //分配所需要拆开的数组空间的2倍,防止空间不足
void Disp(int a[])
{
int j=0,i;
lab:
for ( i=0;i< a.length; i+=cnt)
{
j = i;
cnt = 0;
while(true)
{
if (j==a.length)
break lab;
if (a[i]+cnt==a[j])        //如果相等  例如:a[i]=1  a[j]=1   那么j++ a[j]=2 cnt++ ,cnt=1
{                        //        a[i]+cnt==a[j]继续,否则偏移cnt个

st[index] = a[j];
cnt++;
j++;
index++;
}
else{
st[index++] = -1;        //-1用于分隔用
break;
}
}
}
i=0;
while(st[i]!=0)
{
if (st[i]==-1)
{
System.out.println();
}
else
System.out.print(st[i]);
i++;
}

}

}
class DispartDemo
{
public static void main(String []args)
{
//    Array a = new Array[10];
int []a = {1,2,4,5,7,8,9};
Dispart d = new Dispart(a.length);
d.Disp(a);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐