C语言题解Leetcode56合并区间实例

 更新时间:2023年01月05日 10:38:45   作者:itbird01  
这篇文章主要为大家介绍了C语言题解Leetcode56合并区间实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

解题思路

题目链接 56. 合并区间

本质在于两两做对比,如果两个区间,可以合并,则为结果二维数组中的一员,如果不可合并,则放入结果二维数组,所以根本在于,如何判断两个区间,是可合并,还是不可合并

1.首先将二维数组,按照左端元素进行排序

2.将第一个元素放入结果区间列表

3.如果当前区间的左端元素比结果区间列表最后一个区间右端元素小,则存在包含关系,此时只需更新右端元素即可 (更新为当前区间的右端元素与结果区间的右端元素的最大值)

4.如果不包含,则将当前区间加入结果区间列表,作为最后一个区间 5.输出结果区间列表

解题遇到的问题

1.二维数组排序

2.二维数组在不知道大小时,如何初始化?

后续需要总结学习的知识点

  • Arrays.copyOf源码和使用方法总结
  • 二维数组排序、重新compare
## 解法1
class Solution {
	public int[][] merge(int[][] intervals) {
		Arrays.sort(intervals, new Comparator<int[]>() {
			@Override
			public int compare(int[] o1, int[] o2) {
				return o1[0] - o2[0];
			}
		});

		int index = 0;
		for (int i = 1; i < intervals.length; i++) {
			if (intervals[index][1] < intervals[i][0]) {
				index++;
				intervals[index][0] = intervals[i][0];
				intervals[index][1] = intervals[i][1];
			} else {
				intervals[index][1] = Math.max(intervals[i][1],
						intervals[index][1]);
			}
		}
		return Arrays.copyOf(intervals, index + 1);
	}
}

以上就是C语言题解Leetcode56合并区间实例的详细内容,更多关于C语言 Leetcode合并区间的资料请关注脚本之家其它相关文章!

相关文章

  • C++的template模板中class与typename关键字的区别分析

    C++的template模板中class与typename关键字的区别分析

    这篇文章中我们来谈一谈C++的template模板中class与typename关键字的区别分析,同时会讲到嵌套从属名称时的一些注意点,需要的朋友可以参考下
    2016-06-06
  • 关于python调用c++动态库dll时的参数传递问题

    关于python调用c++动态库dll时的参数传递问题

    这篇文章主要介绍了python调用c++动态库dll时的参数传递,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • C++ 内存分配处理函数set_new_handler的使用

    C++ 内存分配处理函数set_new_handler的使用

    这篇文章主要介绍了C++ 内存分配处理函数set_new_handler的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • STL中的string你了解吗

    STL中的string你了解吗

    这篇文章主要为大家详细介绍了STL中的string,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • C语言自定义函数的实现

    C语言自定义函数的实现

    这篇文章主要介绍了C语言自定义函数的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • C语言 数据结构之连续存储数组的算法

    C语言 数据结构之连续存储数组的算法

    这篇文章主要介绍了C语言 数据结构之连续存储数组的算法的相关资料,需要的朋友可以参考下
    2017-01-01
  • 分享C++面试中string类的一种正确写法

    分享C++面试中string类的一种正确写法

    C++ 的一个常见面试题是让你实现一个 String 类,限于时间,不可能要求具备 std::string 的功能,但至少要求能正确管理资源
    2013-11-11
  • 基于getline()函数的深入理解

    基于getline()函数的深入理解

    本篇文章是对getline()函数的使用进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • c语言函数如何求两个数的最大值

    c语言函数如何求两个数的最大值

    这篇文章主要介绍了c语言函数如何求两个数的最大值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • C++实现线性表有序表的合并方式(顺序表实现and链表实现)

    C++实现线性表有序表的合并方式(顺序表实现and链表实现)

    这篇文章主要介绍了C++实现线性表有序表的合并方式(顺序表实现and链表实现),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04

最新评论