You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

有序数组元素首尾位置查找:方法参数不匹配编译错误排查

问题分析与解决

错误根源

编译错误的核心原因是LeetCode判题系统默认调用的方法签名和你定义的不匹配:

  • 你定义的searchRange需要3个参数:int[] nums, int target, boolean findStart
  • 但LeetCode题目要求的对外方法是int[] searchRange(int[] nums, int target),判题时只会传递两个参数,因此出现「实参和形参列表长度不匹配」的错误。

解决方案

把你写的search方法重命名为searchRange(符合题目要求的方法名),同时将原来的三参数searchRange改为私有辅助方法,避免外部调用冲突。

修正后的代码

class Solution {
    // 私有辅助方法,用于内部二分查找首尾位置
    private int searchRangeHelper(int[] nums, int target, boolean findStart) {
        int ans = -1;
        int start = 0;
        int end = nums.length - 1;
        while (start <= end) {
            int mid = start + (end - start) / 2;
            if (target < nums[mid]) {
                end = mid - 1;
            } else if (target > nums[mid]) {
                start = mid + 1;
            } else {
                ans = mid;
                if (findStart) {
                    end = mid - 1;
                } else {
                    start = mid + 1;
                }
            }
        }
        return ans;
    }

    // 符合LeetCode要求的对外方法,方法名和参数都匹配
    public int[] searchRange(int[] nums, int target) {
        int[] result = {-1, -1};
        int start = searchRangeHelper(nums, target, true);
        int end = searchRangeHelper(nums, target, false);
        result[0] = start;
        result[1] = end;
        return result;
    }

    // 本地测试用main方法,LeetCode判题不会执行
    public static void main(String[] args) {
        int[] nums = {5, 7, 7, 8, 8, 10};
        int target = 8;
        int[] result = new Solution().searchRange(nums, target);
        // 修正打印方式,直接打印数组会输出地址,需要遍历或用Arrays.toString
        System.out.println(java.util.Arrays.toString(result));
    }
}

额外注意点

  • 原代码的main方法需要改为static,否则无法直接调用;同时打印数组时要用Arrays.toString(),否则会输出数组的内存地址而非实际元素。
  • 辅助方法改为private后,只能在类内部调用,避免被外部错误调用。

内容的提问来源于stack exchange,提问作者Madhiha Shaik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 16:25:14