LeetCode: Single Number II

Question

Given an integer array nums where every element appears three times except for one, which appears exactly once. Find the single element and return it.

Example 1:
Input: nums = [2,2,3,2]
Output: 3

Example 2:
Input: nums = [0,1,0,1,0,1,99]
Output: 99

Constraints:
1 <= nums.length <= 3 * 104
-231 <= nums[i] <= 231 - 1
Each element in nums appears exactly three times except for one element which appears once.

Solution

def single_number(nums)
  data_set = Hash.new(0)
  nums.each do |num|
    data_set[num] += 1
  end
  data_set.key(1)
end