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

数组中只出现一次的数字

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);
 }

```

全部评论
我喜歡這個辦法
点赞 回复 分享
发布于 2020-09-25 18:28
对,忘写了,已经修改了
点赞 回复 分享
发布于 2020-03-09 07:53
弱弱问一下,我复制你的代码通过不了啊,提示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

相关推荐

不愿透露姓名的神秘牛友
07-02 17:28
25届每天都在焦虑找工作的事情0offer情绪一直很低落硬撑着面了一个岗位岗位有应酬的成分面试的时候hr给我出各种场景题问的问题比较犀利&nbsp;有点压力面的感觉感觉有点回答不上来本来就压抑的情绪瞬间爆发了呢一瞬间特别想哭觉得自己特别没用没绷住掉眼泪了事后想想觉得自己挺有病的&nbsp;真的破大防了
喜欢唱跳rap小刺猬...:我觉得没关系吧,之前有一次面试leader给我压力面,我顶住了压力,结果入职的时候发现组里氛围很差,果断跑路。其实从面试就能大概看出组的情况,面试体验好的组倒是不一定好,但是面试体验不好的组。。。就很难说
点赞 评论 收藏
分享
程序员小白条:你是沟通了900个,不是投了900份简历,你能投900份,意味着对面都要回复你900次,你早就找到实习了,没亮点就是这样的,别局限地区,时间投的也要早,现在都要7月了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
13
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务