题解 | #奶牛喂养时间#

奶牛喂养时间

https://www.nowcoder.com/practice/db2c7c52df0449b49b36e7fe5364f521

题目考察的知识点是:

区间合并 贪心

题目解答方法的文字分析:

主要在于模拟以及二维数组的应用,首先先将二维数组按照第一个元素进行排序,随后开始遍历,当左右边界发生重合的时候才合并两个区间,否则不用处理。按顺序模拟即可

本题解析所用的编程语言:

java语言。

完整且正确的编程代码:

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param intervals int整型二维数组
     * @return int整型二维数组
     */
    public int[][] mergeTimeIntervals (int[][] intervals) {
        // write code here
        int startTime = 0;
        int endTime = 0;
        ArrayList<int[]> res = new ArrayList<>();

        Arrays.sort(intervals, (o1, o2) -> o1[0] - o2[0]);
        for (int i = 0 ;  i < intervals.length ; i ++) {
            startTime = intervals[i][0];
            endTime = intervals[i][1];
            while (i + 1 < intervals.length && intervals[i + 1][0] >= startTime &&
                    intervals[i + 1][0] <= endTime) {
                endTime = Math.max(endTime, intervals[i + 1][1]);
                i++;
            }
            int[] re = new int[] {startTime, endTime};
            res.add(re);
        }

        int[][] result = res.toArray(new int[res.size()][]);
        return result;
    }
}

#题解#
全部评论

相关推荐

点赞 评论 收藏
分享
10-30 22:18
已编辑
毛坦厂中学 C++
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务