有關數組的兩個小題

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

}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容