//也不知道我的对不对大家运行看看吧,有错的说说,我也就随便瞎想的
package test;
import java.awt.List;
import java.util.ArrayDeque;
import java.util.ArrayList;
public class test1 {
public static void main(String[] args) {
int [][]C = {{1,4},{5,9},{10,15},{16,19},{20,30}};
int [][]D = {{3,6},{7,8},{9,12},{13,17}};
int []ci = new int [C.length*2];
int []di= new int [D.length*2];
List lcd = new List();
List isc = new List();
int i=0,j=0;
int ciLength=0,diLength=0;
while(i < C.length)
{
ci[ciLength]=C[i][0];
ciLength++;
ci[ciLength]=C[i][1];
ciLength++;
i++;
}
while(j
{
di[diLength]=D[j][0];
diLength++;
di[diLength]=D[j][1];
diLength++;
j++;
}
i=0;j=0;
while(i
{
if(ci[i] > di[j])
{
lcd.add(""+di[j]);
isc.add(""+false);
j++;
}else if(ci[i] < di[j])
{
lcd.add(""+ci[i]);
isc.add(""+true);
i++;
}else if(ci[i] == di[j])
{
lcd.add(ci[i]+"");
isc.add(""+true);
lcd.add(di[j]+"");
isc.add(""+false);
i++;
j++;
}
}
if(i == ci.length)
{
while(j < di.length)
{
lcd.add(di[j]+"");
isc.add(""+false);
j++;
}
}
if(j == di.length)
{
while(i < ci.length)
{
lcd.add(""+ci[i]);
isc.add(""+true);
i++;
}
}
int sum = lcd.getItemCount();
int [][] CD = new int [C.length+D.length][2];
int cdlength=0;
int oushuC=0;
int oushuD=0;
for(int s=0;s
{
if(Boolean.parseBoolean(isc.getItem(s)) != true)
{//如果是b的话,开始寻找后序
oushuD++;
if(s+1 < sum)
{
if(Boolean.parseBoolean(isc.getItem(s+1)) != true)
{//后一个也是b的
oushuD++;
if((oushuD%2 == 0))
{
CD[cdlength][0] = Integer.parseInt(lcd.getItem(s));
CD[cdlength][1] = Integer.parseInt(lcd.getItem(s+1));
cdlength++;
}
oushuD--;
}else{
//后一个是a
oushuC++;
if((oushuC%2) == 0 && (oushuD%2) != 0)
{
CD[cdlength][0] = Integer.parseInt(lcd.getItem(s));
CD[cdlength][1] = Integer.parseInt(lcd.getItem(s+1));
cdlength++;
}
oushuC--;
}
}
}else
{//如果是a
oushuC++;
if(s+1 < sum)
{
if(Boolean.parseBoolean(isc.getItem(s+1)) != true )//后一个b
{
//判断是开头的b还是结尾的b
oushuD++;
if((oushuC%2)!=0 && (oushuD%2 == 0))//奇C,偶D
{
CD[cdlength][0] = Integer.parseInt(lcd.getItem(s));
CD[cdlength][1] = Integer.parseInt(lcd.getItem(s+1));
cdlength++;
}
oushuD--;
}
}
}
}
//输出
for(int l=0;l
{
System.out.println(CD[l][0]+","+CD[l][1]);
}
}
}
发表于 2016-03-20 13:01:44
回复(0)