zoukankan      html  css  js  c++  java
  • 剑指offer 40.数组中只出现一次的数字

    剑指offer 40.数组中只出现一次的数字

    题目

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

    思路

    如果只有一个数,当然是异或更好用,相同数字异或为0,但是有两个数字,这种方法无法快速找到,所以不如用hashset,如果存在就删除,不存在就加入,最后把两个数字取出来即可。

    代码

      public void FindNumsAppearOnce(int[] array, int num1[], int num2[]) {
    
        HashSet<Integer> set = new HashSet<>();
    
        for (int i : array) {
          if (set.contains(i)) {
            set.remove(i);
          } else {
            set.add(i);
          }
        }
        int[] t = new int[2];
        int temp = 0;
        Iterator<Integer> iterator = set.iterator();
        while (iterator.hasNext()) {
          t[temp++] = iterator.next();
        }
        num1[0] = t[0];
        num2[0] = t[1];
      }
    
  • 相关阅读:
    python3第六天
    python3第五天
    python3第四天
    python3 第三天
    python3第二天
    python3(2)
    python3(1)
    网络通信 & 初识socket
    python中包的语法
    模块语法
  • 原文地址:https://www.cnblogs.com/blogxjc/p/12416163.html
Copyright © 2011-2022 走看看