You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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中的区间结构,包含startend两个属性,以及构造方法方便快速初始化区间。
  • main函数步骤
    1. 先按照题目示例初始化原始区间和要插入的新区间
    2. 实例化Solution对象,调用你写的insert方法得到合并结果
    3. 遍历结果列表并打印,直观验证是否符合预期
  • 你只需要把自己写好的insert方法替换掉示例里的参考实现部分就行~如果要测试其他用例(比如新区间在最前/最后、和多个区间重叠),只需要修改main函数里的区间初始化内容即可。

内容的提问来源于stack exchange,提问作者Xinya Wang

火山引擎 最新活动