一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。

数组中只出现一次的数字

http://www.nowcoder.com/questionTerminal/e02fdb54d7524710a7d664d082bb7811

这个可以使用ArrayList来解决,代码比较简洁。
首先判断ArrayList中是否已存在,如果存在,则删除。
删除时需要注意一下,如果直接传入当前数作为参数,它会按照下标进行删除,不会按照对象进行删除,可能会出现越界。
所以需要new Integer()。

 public void FindNumsAppearOnce(int [] array,int num1[] , int num2[]) {
     if(array.length < 2){
         return;
     }   
     ArrayList<Integer> list = new ArrayList();
     for(int i = 0;i<array.length;i++){
         if(list.contains(array[i])){
            list.remove(new Integer(array[i]));
         }else{
             list.add(array[i]);
        }
     }
    num1[0] = list.get(0);
    num2[0] = list.get(1);
 }

```

全部评论
弱弱问一下,我复制你的代码通过不了啊,提示error: incompatible types: Object cannot be converted to int num2[0] = list.get(1); ^ Note: ./Solution.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. 2 errors。 是不是ArrayList那里要用Integer?
点赞 回复 分享
发布于 2020-03-09 00:12
对,忘写了,已经修改了
点赞 回复 分享
发布于 2020-03-09 07:53
我喜歡這個辦法
点赞 回复 分享
发布于 2020-09-25 18:28

相关推荐

点赞 评论 收藏
分享
爱看电影的杨桃allin春招:我感觉你在炫耀
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
2024-12-29 00:19
快手 Java工程师 26.0k*16.0
点赞 评论 收藏
分享
评论
13
收藏
分享
牛客网
牛客企业服务