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]);
}
}
}