首页 > 【建设银行】建信金融科技实习生笔试卷A java
头像
被神选中的孩子
编辑于 2020-05-09 10:29
+ 关注

【建设银行】建信金融科技实习生笔试卷A java


第一行输入一个数 代表两个数组的长度
第二行输入a数组
第三行输入b数组
从a 、b数组各选一个数 求和最小 且在所在数组索引不能相等
使用语言java
public static int minSum(int[] a,int[] b){
        //a数组最小值
        int mina = a[0];
        int mini  = 0;

        for (int i = 1; i < a.length; i++) {
            if (mina > a[i]) {
                mina = a[i];
                mini = i;
            }
        }
        //b数组最小值
        int minb = b[0];
        int minj = 0;
        for (int i = 1; i < b.length; i++) {
            if (minb > b[i]) {
                minb = b[i];
                minj = i;
            }
        }

        //如果索引相等 比较a最小 + b次小 ? b最小 + a次小
        if (mini == minj ){
                int newMinb = b[0];
                int newMinj = 0;
                for (int i = 0; i < b.length; i++) {
                    if (b[i] == minb){
                        continue;
                    }
                    if (newMinb > b[i]){
                        newMinb = b[i];
                        newMinj = i;
                    }
                }

                int newMina = a[0];
                int newMini = 0;
                for (int i = 0; i < a.length; i++) {
                    if (a[i] == mina){
                        continue;
                    }
                    if (newMina > a[i]){
                        newMina = a[i];
                        newMini = i;
                    }
                }

               if (mina + newMinb > newMina + minb){
                   return newMina + minb;
               }else{
                   return newMinb + mina;
               }
               
        }
        return mina + minb;
    }


全部评论

(3) 回帖
加载中...
话题 回帖

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐