美文网首页剑指offer
最长公共前缀

最长公共前缀

作者: solfKwolf | 来源:发表于2019-12-08 18:19 被阅读0次

    二分查找

    /**
     * @param {string[]} strs
     * @return {string}
     */
    var longestCommonPrefix = function(strs) {
        if(strs === null || strs.length === 0) return "";
    
        var minLen = Number.MAX_SAFE_INTEGER;
        for (var v of strs) {
            minLen = Math.min(minLen, v.length)
        }
    
        var low = 1,
            high = minLen;
        while (low <= high) {
            var middle = (low + high) >> 1;
            if(isCommonPrefix(strs, middle)) {
                low = middle + 1
            } else {
                high = middle - 1
            }
        }
        
        return strs[0].substring(0, (low + high) >> 1);
    };
    
    
    var isCommonPrefix = function(strs, len) {
        var str1 = strs[0].substring(0, len);
        for(let i = 0;i<strs.length;i++) 
            if (!strs[i].startsWith(str1))
                return false;
        return true;
    }
    

    相关文章

      网友评论

        本文标题:最长公共前缀

        本文链接:https://www.haomeiwen.com/subject/lxgmgctx.html