題目
給定乙個只包含小寫字母的有序陣列letters 和乙個目標字母 target,尋找有序陣列裡面比目標字母大的最小字母。
陣列裡字母的順序是迴圈的。舉個例子,如果目標字母target = 'z' 並且有序陣列為 letters = ['a', 'b'],則答案返回 'a'。
輸入:letters = ["
c", "
f", "j"
]target = "a"
輸出: "c
"輸入:
letters = ["
c", "
f", "j"
]target = "c"
輸出: "f
"輸入:
letters = ["
c", "
f", "j"
]target = "d"
輸出: "f
"輸入:
letters = ["
c", "
f", "j"
]target = "g"
輸出: "j
"輸入:
letters = ["
c", "
f", "j"
]target = "j"
輸出: "c
"輸入:
letters = ["
c", "
f", "j"
]target = "k"
輸出: "c
"
題解
本題採用二分查詢來求解,轉換為查詢左邊界的二分查詢問題。將目標值加一再在原陣列中進行左邊界的二分查詢,相當於求解大於給定元素的最小元素。
classsolution
else
}return right == letters.length ? letters[0] : letters[right];
}}
744 尋找比目標字母大的最小字母
給定乙個只包含小寫字母的有序陣列letters和乙個目標字母target,尋找有序陣列裡面比目標字母大的最小字母。陣列裡字母的順序是迴圈的。舉個例子,如果目標字母target z 並且有序陣列為letters a b 則答案返回 a 輸入 letters c f j target a 輸出 c 輸入...
尋找比目標字母大的最小字母
給定乙個只包含小寫字母的有序陣列letters 和乙個目標字母 target,尋找有序陣列裡面比目標字母大的最小字母。陣列裡字母的順序是迴圈的。舉個例子,如果目標字母target z 並且有序陣列為 letters a b 則答案返回 a 示例 輸入 letters c f j target a 輸...
153 尋找比目標字母大的最小字母
給定乙個只包含小寫字母的有序陣列letters 和乙個目標字母 target,尋找有序陣列裡面比目標字母大的最小字母。陣列裡字母的順序是迴圈的。舉個例子,如果目標字母target z 並且有序陣列為 letters a b 則答案返回 a 示例 輸入 letters c f j target a 輸...