fork download
  1. #include <iostream>
  2. using namespace std;
  3. #include <vector>
  4.  
  5. char nextGreatestLetter(vector<char>& letters, char target) {
  6. int left = 0, right = letters.size();
  7.  
  8. while (left < right) {
  9. int mid = left + (right - left) / 2;
  10. if (letters[mid] > target)
  11. right = mid;
  12. else
  13. left = mid + 1;
  14. }
  15.  
  16. return letters[left % letters.size()];
  17. }
  18.  
  19. int main() {
  20. vector<char> letters = {'c', 'f', 'j'};
  21. char target = 'c';
  22.  
  23. cout << "Next greatest letter: " << nextGreatestLetter(letters, target) << endl;
  24.  
  25. return 0;
  26. }
  27.  
Success #stdin #stdout 0s 5288KB
stdin
Standard input is empty
stdout
Next greatest letter: f