题解 | #手套#

手套

https://www.nowcoder.com/practice/365d5722fff640a0b6684391153e58d8

import java.util.*;

public class Gloves {
    public int findMinimum(int n, int[] left, int[] right) {
        int ret = 0;
        for (int i = 0; i < left.length; i++) {
            if (left[i] == 0) { //处理异常情况
                ret += right[i];
                right[i] = 0;
            }
            if (right[i] == 0) {
                ret += left[i];
                left[i] = 0;
            }
        }
        int leftMin = Arrays.stream(left).filter(num -> num != 0)
                      .min().orElse(0);//找不到最小值返回0
        int rightMin = Arrays.stream(right).filter(num -> num != 0)
                       .min().orElse(0);
        int leftSum = Arrays.stream(left).sum();
        int rightSum = Arrays.stream(right).sum();

        if (leftSum < rightSum) {
            return  leftSum - leftMin + 2 + ret;
        } else {
            return  rightSum - rightMin + 2 + ret;
        }
    }
}
主要分为异常情况和非异常情况,也就是含有0 和 不含有0 ,
含有0 我就吧对面的数加在ret上面也置换成0,然后就可转换成非异常情况,
然后求最小值的时候一定要忽略0,一定一定一定!!!!!

全部评论

相关推荐

Jcwemz:中软证书写单行,考了什么学了什么相关技术栈的内容就说自己会什么, 没实习就包装实习简历,将项目经历写成实习做的,项目时间拉长,项目成果具体化,测试的项目成果无非就是写了多少用例查出了多少bug,重要的不是实习了多久,而是你会多少东西,你能表达的就都是你的。 cet4,随便找个地方标上就好了,不用写单行。 粗略建议,我也不在行,觉得对的可以采纳
实习,投递多份简历没人回...
点赞 评论 收藏
分享
迷茫的大四🐶:???啥意思,你放几张图片糊弄牛油们?
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务