提问人:UTKARSH JOSHI 提问时间:5/29/2023 最后编辑:UTKARSH JOSHI 更新时间:5/29/2023 访问量:42
线程主 java.lang.NullPointerException 在 Runner.takeInput(Runner.java:24) 在 Runner.main(Runner.java:55) [重复]
Exception in thread main java.lang.NullPointerException at Runner.takeInput(Runner.java:24) at Runner.main(Runner.java:55) [duplicate]
问:
有一个名为“数组中的重复”的问题,我们需要找到一个在数组中出现两次的数字,其中元素数为 N,数组中存在 1 到 N-1 之间的所有元素。总有一个元素出现两次。
**我使用了一种简单的方法,对给定的数组进行排序,然后将每个元素与其下一个元素进行比较,如果它们匹配,则返回元素,否则增加指针。
用 Java 编写此代码**
import java.util.ArrayList;
import java.util.*;
public class Solution {
public static int findDuplicate(ArrayList<Integer> arr) {
// Write your code here.
Collections.sort(arr);
int i=0;
for(i=0;i<arr.size()-1;i++){
if((arr.get(i))== (arr.get(i+1)))
return arr.get(i);
}
return 0;
}
}
我得到的错误或异常是这样的:
Exception in thread main java.lang.NullPointerException
at Runner.takeInput(Runner.java:24)
at Runner.main(Runner.java:55)
答:
0赞
Lore
5/29/2023
#1
因为在最后一步中,我认为 i+1 出界了。
评论