# Solving Leetcode Interviews in Seconds with AI: Single Element in a Sorted Array


	# Introduction
	In this blog post, we will explore how to solve the LeetCode problem "540" using AI. LeetCode is a popular platform for preparing for coding interviews, and with the help of AI tools like [Chatmagic](https://www.chatmagic.app), we can generate solutions quickly and efficiently - helping you pass the interviews and get the job offer without having to study for months.

	# Problem Statement
	> You are given a sorted array consisting of only integers where every element appears exactly twice, except for one element which appears exactly once. Return the single element that appears only once. Your solution must 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 <= 105 0 <= nums[i] <= 105  

	# Explanation
	Here's the breakdown of the approach, followed by the code:

*   **Binary Search:** Use binary search to efficiently narrow down the search space. The key idea is to check if the middle element is the unique element or part of a pair.
*   **Pair Detection:** Exploit the sorted nature of the array. If `nums[mid]` is equal to `nums[mid ^ 1]`, then `mid` is part of a pair, and the unique element must lie to the right. Otherwise, the unique element lies to the left (including `mid`).
*   **Even/Odd Indexing:** The `mid ^ 1` trick toggles the last bit of the index `mid`. If `mid` is even, `mid ^ 1` becomes `mid + 1`. If `mid` is odd, `mid ^ 1` becomes `mid - 1`. This efficiently checks the adjacent element for a pair.

*   **Time & Space Complexity:** O(log n) time, O(1) space.

	
	# Code
	```python
	def singleNonDuplicate(nums):
    """
    Finds the single element in a sorted array that appears only once.

    Args:
        nums: A sorted array of integers where every element appears twice,
              except for one element which appears exactly once.

    Returns:
        The single element that appears only once.
    """
    low = 0
    high = len(nums) - 1

    while low < high:
        mid = (low + high) // 2
        if nums[mid] == nums[mid ^ 1]:
            low = mid + 1
        else:
            high = mid
    return nums[low]
	```
			
