LeetCode: Single Element in a Sorted Array

Question

You are given a sorted array consisting of only integers where every element appears exactly twice, except for one element which appears exactly once. Find this single element that appears only once.

Follow up: Your solution should run in O(log n) time and O(1) space.

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

Example 2:
Input: nums = [3,3,7,7,10,11,11]
Output: 10

Constraints:
1 <= nums.length <= 10^5
0 <= nums[i] <= 10^5

Solution

def single_non_duplicate(nums)
  return nums.first if nums.length == 1
  sorted_nums = nums.sort
  i, j = 0
  while i <= sorted_nums.length-1
    if  nums[i] == nums[i+1]
      i += 2
    else
      return nums[i]
    end
  end
end