744. Find Smallest Letter Greater Than Target

L家tag題目,這種easy在面試的時候面試官肯定是expect你給出最優(yōu)解的。這道題之前我一直用的O(n)的方法,可能是給的例子都是很小的數(shù)據(jù)量給我造成了錯覺覺得O(n)就是最優(yōu)了,然而這是一道最基本的binary search, 肯定是希望你做到O(logn)的。

class Solution {
    public char nextGreatestLetter(char[] letters, char target) {
        int start = 0;
        int end = letters.length - 1;
        while (start + 1 < end){
            int mid = start + (end - start) / 2;
            if (letters[mid] <= target){
                start = mid;
            } else {
                end = mid;
            }
        }
        if (letters[start] > target){
            return letters[start];
        }
        if (letters[end] > target){
            return letters[end];
        }
        return letters[0];
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容