# 56-II.数组中数字出现的次数II

### 一、 题目

在一个数组 nums 中除一个数字只出现一次之外，其他数字都出现了三次。请找出那个只出现一次的数字。

示例 1：

输入：nums = \[3,4,3,3]

输出：4

示例 2：

输入：nums = \[9,1,7,9,7,9,7]

输出：1

限制：

1 <= nums.length <= 10000

1 <= nums\[i] < 2^31

来源：力扣（LeetCode）

链接：<https://leetcode-cn.com/problems/shu-zu-zhong-shu-zi-chu-xian-de-ci-shu-ii-lcof>

著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。

### 二、 解法

* 创建一个临时队列，遍历 nums
  * 数字 item 存在，下标为 lastIdx
    * 插入 item 到队列末端
    * 移除 lastIdx 下标元素
  * 不存在
    * 插入到队列头部
* 遍历完成，队列头部元素即为结果

```
func singleNumber(_ nums: [Int]) -> Int {
    var queue: [Int] = []
    
    for item in nums {
        if let lastIdx = queue.firstIndex(of: item) {
            queue.remove(at: lastIdx)
            queue.append(item)
        }
        else {
            queue.insert(item, at: 0)
        }
    }
    
    return queue[0]
}
```
