题解 | #手套#
手套
https://www.nowcoder.com/practice/365d5722fff640a0b6684391153e58d8
import java.util.*; public class Gloves { public int findMinimum(int n, int[] left, int[] right) { int noMatch = 0; // 左右手任一为零 铁定不匹配 int sumLeft = 0, sumRight = 0; // 左右手各自的手套总数 int minLeft = 24, minRight = 24; // 左右手手套中 除去0个 最少的个数 for(int i = 0; i < n; i++){ if(left[i] == 0 || right[i] == 0){ // 左手或者右手为 0 ,不可能匹配 noMatch += left[i] + right[i]; }else{ // 左右手个数都不为 0 sumLeft += left[i]; sumRight += right[i]; if(left[i] < minLeft){ minLeft = left[i]; } if(right[i] < minRight){ minRight = right[i]; } } } // 保证 左手或右手中任一都有全色 + 不匹配 + 另一手的随便一只 int res = Math.min(sumLeft-minLeft+1, sumRight-minRight+1) + noMatch + 1; return res; } }