1.有两个有序整数数组,
例如{1,3,5,7,9}和{2,4,6,7,8},
设计一个函数使两个数组合并,并求出其共同元素,且剔除掉两个数组里重复的元素。{1,2,3,4,5,6,7,8,9}
package demo1;
import java.util.Arrays;
public class Test1 {
public static void main(String[] args) {
int[] a = {1,3,5,7,9};
int[] b = {2,4,6,7,8};
int[] c= new int[a.length+b.length];//如果a和b没有相同元素那么c的最大长度为a和b的长度
int i,j;
for(i= 0;i<b.length;i++)//将b数组的内容放到b数组中
{
c[i] = b[i];
}
int t=i; //用t记录c数组的下标
for(i = 0;i<a.length;i++)
{
boolean flag = true;
for( j = 0;j<b.length;j++)
{
if(a[i]==b[j])
{
System.out.println(a[i]); //打印相同元素
flag = false;
break;
}
}
if(flag) //判断a数组和b数组不重复元素放到c中
{
c[t++] = a[i];
}
}
Arrays.sort(c);
for (i=c.length-t;i<c.length;i++) { //输出c,输出到t为止
System.out.print(c[i]+" ");
}
}
}
2.给定一个含有n个元素的整型数组a,输出元素出现的次数.
如:{1,1,1,2,4,3,3}
1:3
2:1
4:1
3:2
package demo1;
import java.util.Arrays;
public class Test3 {
public static void main(String[] args) {
int[] a = new int[]{1,1,1,2,4,3,3};
Arrays.sort(a); //先将a数组进行排序
int b[][] = new int[a.length][2]; //开辟一个a.length行两列的二维数组
int t = 0; //用t记录b数组下标
b[t++][0] = a[0]; //先a数组第一个值赋给b数组
int i;
int j;
for( i = 1;i<a.length;i++) //将不重复的数据压到b数组里
{
if(a[i]>a[i-1])
{
b[t++][0] = a[i];
}
}
for( i = 0;i<t;i++) //记录数据在a数组中出现次数
{
for( j = 0;j<a.length;j++)
{
if(b[i][0]==a[j])
{
b[i][1]++;
}
}
}
for(i = 0;i<t;i++) //打印b数组中的数和出现的次数
{
System.out.println(b[i][0]+":"+b[i][1]);
}
}
}