#3825. 兔猫学院的“神秘后继符”探索
兔猫学院的“神秘后继符”探索
🐰🐱 兔猫信奥学院:加菲老师的“神秘后继符”探索
题目描述
在兔猫信奥学院的魔法阵列里,加菲老师摆放了一排按字母顺序排列的神秘魔符(小写字母)。小兔和小猫需要帮助他找到阵列中紧随某个给定魔符 target
之后的那个魔符,如果已经到了阵列末尾,则要回到开头继续寻找。
具体规则:
- 给定一个长度为 n 的字符数组
letters
(按非递减顺序排列,且至少包含两个不同的字母),和一个目标字符target
。 - 返回
letters
中严格大于target
的最小字符;如果没有更大的字符,则返回letters[0]
。
你需要设计一个 O(log n) 的算法来完成这项任务。
输入格式
n target
letters[0] letters[1] … letters[n-1]
- 第一行包含整数 n 和一个字符
target
,分别表示魔符数量和目标魔符。 - 第二行包含 n 个小写字母,以空格分隔,表示已按字典序(非递减)排列的魔符阵列。
输出格式
- 输出一个字符,表示对给定
target
的“后继魔符”查询结果。
样例输入 1
3 c
c f j
样例输出 1
f
解释:在 ['c','f','j']
中,比 'c'
大的最小字符是 'f'
。
样例输入 2
3 j
c f j
样例输出 2
c
解释:没有比 'j'
更大的字符,返回开头的 `'c'‘。
数据范围
- 2 ≤ n ≤ 10 000
letters[i]
是小写字母- 数组按照非递减顺序排列,且至少包含两种不同字符
target
为小写字母