牛牛是一个注重时间管理的小牛,他有一系列待办事项,每个事项都有一个开始时间和结束时间。牛牛希望将所有时间有重叠的事项合并,以便更好地安排自己的时间表。 现在,请你帮助牛牛解决这个问题。
区块链毕设网qklbishe.com为您提供问题的解答
牛牛是一个注重时间管理的小牛,他有一系列待办事项,每个事项都有一个开始时间和结束时间。牛牛希望将所有时间有重叠的事项合并,以便更好地安排自己的时间表。
现在,请你帮助牛牛解决这个问题。
public int[][] mergeTimeIntervals (int[][] intervals) { Arrays.sort(intervals, Comparator.comparingInt(o->o[0])); ArrayList<int[]> arrayLists = new ArrayList<>(); for (int[] interval : intervals) { // 如果集合为空,表示还没加入第一个元素,肯定不用合并,或者是集合中末尾节点的右端点小于要添加的新节点的左端点,那么也不用合并,直接添加 if (arrayLists.isEmpty() || arrayLists.get(arrayLists.size() - 1)[1] < interval[0]) { arrayLists.add(interval); } else { // 如果集合不为空并且集合末尾节点的右端点大于等于要添加的新节点的左端点,那么进行合并操作,挑选较大的右端点值合并 arrayLists.get(arrayLists.size() - 1)[1] = Math.max(arrayLists.get( arrayLists.size() - 1)[1], interval[1]); } } int [][] result = new int[arrayLists.size()][]; for (int i = 0; i < arrayLists.size(); i++) { result[i] = arrayLists.get(i); } return result; }
自定义排序+数学模拟,数组遍历即可,注意合并的条件和初始化的情况,然后就是集合转二维数组。
11:38
以上就是关于问题牛牛是一个注重时间管理的小牛,他有一系列待办事项,每个事项都有一个开始时间和结束时间。牛牛希望将所有时间有重叠的事项合并,以便更好地安排自己的时间表。 现在,请你帮助牛牛解决这个问题。的答案
欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。
区块链NFT链游项目方科学家脚本开发培训