剑指offer最优解Java版

剑指offer最优解Java版-数组中只出现一次的数字

2019-07-03  本文已影响1人  全菜工程师小辉

题目描述

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

解决方法

直接用set遍历一下数组就可。

// num1,num2分别为长度为1的数组。传出参数
// 将num1[0],num2[0]设置为返回结果
import java.util.*;
public class Solution {
    public void FindNumsAppearOnce(int [] array,int num1[] , int num2[]) {
        Set<Integer> set = new HashSet<>();
        for(int i=0;i<array.length;i++){
            if(set.contains(array[i])){
                set.remove(array[i]);
            }else{
                set.add(array[i]);
            }
        }
        Iterator<Integer> iterator= set.iterator();
        if(iterator.hasNext()){
            num1[0] = iterator.next();
        }
        if(iterator.hasNext()){
            num2[0] = iterator.next();
        }
    }
}

复杂度分析:

哎呀,如果我的名片丢了。微信搜索“全菜工程师小辉”,依然可以找到我
上一篇下一篇

猜你喜欢

热点阅读