第一行输入一个数 代表两个数组的长度
第二行输入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) 回帖