# 744.Find Smallest Letter Greater Than Target

**744. Find Smallest Letter Greater Than Target**

难度:Easy

> 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:
letters has a length in range [2, 10000].
letters consists of lowercase letters, and contains at least 2 unique letters.
target is a lowercase letter.
```

直接找出當target大於給定目標值時的最小值，如果沒有，返回整個數組的最小值。\
第一種方法：遞歸

```
class Solution {
public:
    char nextGreatestLetter(vector<char>& letters, char target) {
        char res='z'+1;
        for(auto c:letters)
            if(c>target )
                res=min(res,c);
        
        return res=='z'+1?nextGreatestLetter(letters, target-26): res ;
    }
};
```

> 执行用时 :24 ms, 在所有 C++ 提交中击败了22.61%的用户\
> 内存消耗 :9 MB, 在所有 C++ 提交中击败了84.87%的用户

第二種方法，直接用一個變量保存最小值。

```
class Solution {
public:
    char nextGreatestLetter(vector<char>& letters, char target) {
        char res='z'+1;
        char minC=res;
        for(auto c:letters)
        {
            if(c>target )
                res=min(res,c);
            minC=min(minC,c);
        }
        
        return res=='z'+1?minC: res ;
    }
};
```

> 执行用时 :16 ms, 在所有 C++ 提交中击败了77.00%的用户\
> 内存消耗 :9 MB, 在所有 C++ 提交中击败了88.11%的用户


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://dfine.gitbook.io/leetcode/744.find_smallest_letter_greater_than_target.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
