【发布时间】:2019-11-07 13:16:04
【问题描述】:
我正在查看 leetcode 两个 sum 代码,并且对 throw new IllegalArgumentException 语句感到困惑。代码的目标是返回两个数字的索引,以便在给定整数数组的情况下,它们相加到一个特定的目标。假设每个输入都只有一个解决方案,并且您不能两次使用相同的元素。代码如下:
如果我在没有 throw new IllegalArgumentException("No two sum solution") 的情况下运行此代码,则会显示错误消息:
第 10 行:错误:缺少返回语句 } ^
但如果我添加 throw new IllegalArgumentException("No two sum solution"),代码运行顺畅。
我的问题是,既然 假设每个输入都只有一个解决方案,那么在这种情况下为什么 throw new IllegalArgumentException 很重要。 谢谢。
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 two sum solution");
}
}
【问题讨论】:
-
您的假设对编译器没有帮助。它需要对所有可能的路径进行有效返回。
-
感谢安迪的详细解释。这澄清了一切。
标签: java illegalargumentexception