//拆分一个数组中连续的数字,可以参考字符串匹配算法
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);
}
}
拆分出一个数组中的连续数字
最新推荐文章于 2023-04-22 17:30:29 发布
本文介绍了一种用于拆分数组中连续数字的算法实现,通过遍历输入数组并检查相邻元素之间的关系来达到目的。当检测到不连续时,则进行标记以便后续处理。该方法适用于需要对连续数据进行分组的场景。
开发板推荐:天空星STM32F407VET6开发板
超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印
开发板推荐:天空星STM32F407VET6开发板
超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

433

被折叠的 条评论
为什么被折叠?



