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[j] == target - nums[i]) {
return new int[] { i, j };
}
}
}
throw new IllegalArgumentException("No two sum solution");
}
这是LeetCode问题的代码,该代码要求返回两个索引i和j的数组,以使nums [i] + nums [j] =目标。该问题表明您可以假设会有解决方案。
我想知道为什么找不到解决方案而不是返回null,而是引发异常?不会显示给用户吗?
答案 0 :(得分:0)
因为应该总是有一个解决方案,所以如果找不到解决方案,那就是意外情况,即 exception 。
如果您返回其他内容,则将忽略该问题并静默返回不正确的结果,这违反了该方法的约定。这是一个问题,因为呼叫者并不期望不良结果,例如null,将失败。最好在检测到异常时抛出异常,这样可以提供问题的真实原因。