744. Find Smallest Letter Greater Than Target

Posted __Meng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了744. Find Smallest Letter Greater Than Target相关的知识,希望对你有一定的参考价值。

Given a list of sorted characters letters containing only lowercase letters, and given a target letter target, find the smallest element in the list that is larger than the given target.

Letters also wrap around. For example, if the target is target = ‘z‘ and letters = [‘a‘, ‘b‘], the answer is ‘a‘.

Examples:

Input:
letters = ["c", "f", "j"]
target = "a"
Output: "c"

Input:
letters = ["c", "f", "j"]
target = "c"
Output: "f"

Input:
letters = ["c", "f", "j"]
target = "d"
Output: "f"

Input:
letters = ["c", "f", "j"]
target = "g"
Output: "j"

Input:
letters = ["c", "f", "j"]
target = "j"
Output: "c"

Input:
letters = ["c", "f", "j"]
target = "k"
Output: "c"

 

Note:

  1. letters has a length in range [2, 10000].
  2. letters consists of lowercase letters, and contains at least 2 unique letters.
  3. target is a lowercase letter.

 

二分查找,找到大于给定目标的列表中最小的元素。

 

C++(19ms):

 1 class Solution {
 2 public:
 3     char nextGreatestLetter(vector<char>& letters, char target) {
 4         int left = 0 ;
 5         int right = letters.size() - 1 ;
 6         while(left < right){
 7             int mid = (left+right)>>1 ;
 8             if (target < letters[mid])
 9                 right = mid ;
10             else
11                 left = mid + 1 ;
12         }
13         return target < letters[left] ? letters[left] : letters[0] ;
14     }
15 };

 

以上是关于744. Find Smallest Letter Greater Than Target的主要内容,如果未能解决你的问题,请参考以下文章

744. Find Smallest Letter Greater Than Target 找到大于目标的最小的字母

744. Find Smallest Letter Greater Than Target(大于给定元素的最小元素)(leetcode)

744. Find Smallest Letter Greater Than Target 查找比目标字母大的最小字母

LeetCode 744. Find Smallest Letter Greater Than Target (时间复杂度O(n))

leetcode 744. 寻找比目标字母大的最小字母(Find Smallest Letter Greater Than Target)

[LeetCode] Find Smallest Letter Greater Than Target