[2021校招必看之Java版《剑指offer》-20] 数组中只出现一次的数字

文章目录

  • 1、题目描述
  • 2、解题思路
    • 2.1 哈希法
    • 2.2 位运算法
  • 3、解题代码
    • 3.1 哈希法
    • 3.2 位运算法
  • 4、解题心得

1、题目描述

  【JZ40】一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
  知识点:数组,位运算,哈希
  难度:☆

2、解题思路

2.1 哈希法

  使用一个哈希map来记录每一个数字重复的次数,然后把重复次数为1的输出即可。
  具体步骤:
  1、定义一个HashMap
  2、遍历数组,记录每个数字的出现次数;
  3、定义一个Queue,把出现次数为1的数字入队;
  4、队列出队即最终结果。

2.2 位运算法

  异或操作是:两个位,不同则为1,相同则为0。
  具有以下规律:
  1、n^0 = 0;

你可能感兴趣的:(剑指offer(Java语言),数据结构,java,算法,哈希,剑指offer)