java找出两个已排序数组中的相同元素

问题:找出两个已排序数组中的相同元素;

代码:

    public static void main(String[] args) {
/*
1.定义两个随机数组
2.遍历两个数组进行比较,找出相同元素
2.输出相同元素的下标,数值,总数
 */
        Random r = new Random(100);
        int a[] = new int[9];
        int b[] = new int[10];
        for (int i = 0; i <a.length ; i++) {
            a[i] = r.nextInt(100);
        }
        System.out.println(Arrays.toString(a));
        for (int i = 0; i <b.length ; i++) {
            b[i] = r.nextInt(100);
        }
        System.out.println(Arrays.toString(b));
        int i = 0;
        int  j = 0;
        //因a,b长度未知,故分为三种情况:
        //a,b都未遍历完时
        //a遍历完,b未遍历完
        //b遍历完,a未遍历完
        //故,需先判断出a,b长短;
        //判断长短:
        int c[] = a;//短
        int d[] = b;//长
        int min = a.length;
        int max = b.length;
        int count =0;
        if(a.length>b.length){
            min= b.length;
            c = b;
            max = a.length;
            d = a;
        }
        //遍历比较
        for (int k = 0; k <min ; k++) {
            for (int l = 0; l <max ; l++) {
                if(c[k]==d[l]){
                    System.out.println(k+":"+c[k]);
                    System.out.println(l+":"+d[l]);
                    count++;
                }
            }
        }
        System.out.println("相同的个数"+count);
        }
  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值