题解 | #数组中只出现一次的两个数字#

数组中只出现一次的两个数字

https://www.nowcoder.com/practice/389fc1c3d3be4479a154f63f495abff8

package com.hhdd.哈希;

import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;

/**
 * @Author huanghedidi
 * @Date 2022/8/13 15:18
 */
public class 数组中只出现一次的两个数字 {

    public static void main(String[] args) {
        int[] arr = {1,2,3,3,2,9};
        int[] res = FindNumsAppearOnce(arr);
        System.out.println("res = " + Arrays.toString(res));
    }

    /**
     * 题目有个条件是其他数字都是出现2次,说明不会有3,4,次这种情况
     *
     * @param array
     * @return
     */
    public static int[] FindNumsAppearOnce(int[] array) {
        // write code here
        HashSet<Integer> set = new HashSet<>();
        for (int i = 0; i < array.length; i++) {
            int tmp = array[i];
            if (set.contains(tmp)) {
                set.remove(tmp);
            } else {
                set.add(tmp);
            }
        }
        int[] res = new int[set.size()];
        int index = 0;
        for (Integer item : set) {
            res[index++] = item;
        }
        Arrays.sort(res);
        return res;
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
08-20 19:41
那一天的Java_J...:简历完全流水账,学生思维很严重,还有很大的优化空间,可以多看看牛客的简历。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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