LeetCode Entry
744. Find Smallest Letter Greater Than Target
Larger letter in array
744. Find Smallest Letter Greater Than Target easy blog post substack youtube

Join me on Telegram
https://t.me/leetcode_daily_unstoppable/1254
Problem TLDR
Larger letter in array #easy
Intuition
Scan. Or do a binary search.
Approach
- or search in t+1..āzā
Complexity
-
Time complexity: \(O(n)\)
-
Space complexity: \(O(1)\)
Code
// 1ms
fun nextGreatestLetter(l: CharArray, t: Char) =
l.find{it>t}?:l[0]
/*
(l.filter{it>t}+l[0])[0]
l[l.count{it<=t}%l.size]
(l.map{it}-('a'..t)+l[0])[0]
(t+1..'z').find{it in l}?:l[0]
l[(-1-l.map{it}.binarySearch{if(it>t)1 else -1})%l.size]
l[(Arrays.binarySearch(l,t+1).let{if(it<0)-1-it else it})%l.size]
*/
// 0ms
pub fn next_greatest_letter(l: Vec<char>, t: char) -> char {
l[l.partition_point(|&c|c<=t)%l.len()]
}