代码在本地IDE运行正常但LeetCode编译报错(找不到Solution类)
解决LeetCode两数之和提交时的"cannot find symbol: class Solution"错误
问题根源
LeetCode的判题器会固定执行new Solution().twoSum(param_1, param_2)来调用解题逻辑,但你的代码中使用的类名是twoSumSolution,和判题器期望的Solution类名不匹配,导致编译器找不到目标类。
解决步骤
- 修改类名:将你的
twoSumSolution类名改为Solution,注意Java类名首字母需大写,严格匹配判题器的要求。 - 精简提交代码:不需要提交带有
main方法的TwoSum类,LeetCode只需要包含twoSum方法的Solution类即可,本地测试用的main方法可留在本地代码中,无需上传。
正确代码示例
public class Solution { public int[] twoSum(int[] nums, int target) { // 替换为你的两数之和实现逻辑 for (int i = 0; i < nums.length; i++) { for (int j = i + 1; j < nums.length; j++) { if (nums[i] + nums[j] == target) { return new int[]{i, j}; } } } throw new IllegalArgumentException("No valid two sum solution"); } }
注意事项
- LeetCode的Java题目对类名、方法签名有严格的格式要求,必须完全匹配题目给出的模板,不能自行修改类名、方法名或参数列表。
- 本地IDE测试时可以保留额外的测试类,但提交时仅需提交符合要求的
Solution类代码,多余的类会导致判题异常。
内容的提问来源于stack exchange,提问作者Ajit Patil
相关产品推荐
相关产品推荐

