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