Java初学者求助:如何为LeetCode插入区间问题编写main函数
帮你搞定「插入区间」的main测试函数
嘿,作为Java初学者刚接触LeetCode的区间问题,确实容易卡在测试环节~我来帮你把main函数写好,顺便给你一套完整的可运行代码,方便你验证自己的insert方法是否正确。
首先得明确:LeetCode里的Interval类是需要我们自己定义的(本地运行时没有这个内置类),所以先把这个基础类补上,再写main函数做测试。
完整可运行代码示例
import java.util.ArrayList; import java.util.List; // 定义Interval类,对应题目里的区间结构 class Interval { int start; int end; Interval() { start = 0; end = 0; } Interval(int s, int e) { start = s; end = e; } } public class Solution { // 这里放你已经写好的insert方法 public List<Interval> insert(List<Interval> intervals, Interval newInterval) { // 替换成你自己实现的代码就行,下面是一个参考实现供你对比 List<Interval> result = new ArrayList<>(); int i = 0; // 添加所有在新区间左侧、无重叠的区间 while (i < intervals.size() && intervals.get(i).end < newInterval.start) { result.add(intervals.get(i)); i++; } // 合并所有和新区间重叠的区间 while (i < intervals.size() && intervals.get(i).start <= newInterval.end) { newInterval.start = Math.min(newInterval.start, intervals.get(i).start); newInterval.end = Math.max(newInterval.end, intervals.get(i).end); i++; } result.add(newInterval); // 添加剩下在新区间右侧、无重叠的区间 while (i < intervals.size()) { result.add(intervals.get(i)); i++; } return result; } // 重点:测试用的main函数 public static void main(String[] args) { // 1. 初始化题目示例1的原始区间列表 List<Interval> intervals = new ArrayList<>(); intervals.add(new Interval(1, 3)); intervals.add(new Interval(6, 9)); // 2. 创建要插入的新区间 Interval newInterval = new Interval(2, 5); // 3. 实例化Solution对象,调用insert方法 Solution solution = new Solution(); List<Interval> mergedIntervals = solution.insert(intervals, newInterval); // 4. 打印结果,验证是否符合预期 System.out.println("插入合并后的区间结果:"); for (Interval interval : mergedIntervals) { System.out.printf("[%d, %d] ", interval.start, interval.end); } // 预期输出:[1, 5] [6, 9] } }
代码说明
- Interval类:模拟LeetCode中的区间结构,包含
start和end两个属性,以及构造方法方便快速初始化区间。 - main函数步骤:
- 先按照题目示例初始化原始区间和要插入的新区间
- 实例化
Solution对象,调用你写的insert方法得到合并结果 - 遍历结果列表并打印,直观验证是否符合预期
- 你只需要把自己写好的
insert方法替换掉示例里的参考实现部分就行~如果要测试其他用例(比如新区间在最前/最后、和多个区间重叠),只需要修改main函数里的区间初始化内容即可。
内容的提问来源于stack exchange,提问作者Xinya Wang




