Find Smallest Letter Greater Than Target - LeetCode

Key idea

char nextGreatestLetter(vector<char>& letters, char target) {
    int left = 0, right = letters.size() - 1;
    while (left <= right) {
        int mid = left + (right - left) / 2;
        if (letters[mid] <= target) {   // == and < both push right
            left = mid + 1;
        } else {
            right = mid - 1;
        }
    }
    return letters[left % letters.size()];
}

Wrap-around

Bug I hit