Java 题解 | #牛奶工厂#

牛奶工厂

https://www.nowcoder.com/practice/264efc6e41394a0286c51eb2521ba386

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param time1 int整型一维数组
     * @param time2 int整型一维数组
     * @param m int整型
     * @param n int整型
     * @return int整型
     */
    public int milk_sum (int[] time1, int[] time2, int m, int n) {
        // write code here
        // 创建一个新数组用于存储合并后的生产时间
        int[] mergedTimes = new int[m + n];

// 合并两个数组,保持非递减顺序
        int i = 0, j = 0, k = 0;
        while (i < m && j < n) {
            if (time1[i] <= time2[j]) {
                mergedTimes[k++] = time1[i++];
            } else {
                mergedTimes[k++] = time2[j++];
            }
        }

// 将剩余未合并的元素添加到新数组中
        while (i < m) {
            mergedTimes[k++] = time1[i++];
        }
        while (j < n) {
            mergedTimes[k++] = time2[j++];
        }

// 计算合并后的数组中生产时间之和
        int sum = 0;
        for (int time : mergedTimes) {
            sum += time;
        }

        return sum;
    }
}

该题考察的知识点:

  • 数组操作
  • 指针技巧
  • 数组长度和元素数目

代码的文字解释:

  1. 初始化三个指针ijk,分别指向数组time1time2mergedTimes的起始位置。
  2. 使用while循环,同时遍历数组time1time2,比较当前位置上的元素大小,并将较小的元素添加到mergedTimes数组中,然后将相应的指针右移。
  3. 当其中一个数组遍历完毕后,将剩余未合并的元素依次添加到mergedTimes数组中。
  4. 使用for循环遍历mergedTimes数组,计算所有生产时间的总和并将其累加到变量sum中。
  5. 返回计算得到的sum值作为结果。
全部评论

相关推荐

昨天 11:05
门头沟学院 运营
点赞 评论 收藏
分享
06-12 10:50
门头沟学院 Java
你的不定积分没加C:我怎么在学院群看到了同样的话
点赞 评论 收藏
分享
叶扰云倾:进度更新,现在阿里云面完3面了,感觉3面答得还行,基本都答上了,自己熟悉的地方也说的比较细致,但感觉面试官有点心不在焉不知道是不是不想要我了,求阿里收留,我直接秒到岗当阿里孝子,学校那边的房子都退租了,下学期都不回学校,全职猛猛实习半年。这种条件还不诱人吗难道 然后现在约到了字节的一面和淘天的复活赛,外加猿辅导。华为笔试完没动静。 美团那边之前投了个base广州的,把我流程卡麻了,应该是不怎么招人,我直接简历挂了,现在进了一个正常的后端流程,还在筛选,不知道还有没有hc。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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