1 Star 0 Fork 1

atbire/leetcode

forked from marsdin/leetcode 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
14.longest-common-prefix.js 968 Bytes
一键复制 编辑 原始数据 按行查看 历史
luzhipeng 提交于 2019-06-04 09:49 . fix: typo
/*
* @lc app=leetcode id=14 lang=javascript
*
* [14] Longest Common Prefix
*/
function isCommonPrefix(strs, middle) {
const prefix = strs[0].substring(0, middle);
for (let i = 1; i < strs.length; i++) {
if (!strs[i].startsWith(prefix)) return false;
}
return true;
}
/**
* @param {string[]} strs
* @return {string}
*/
var longestCommonPrefix = function(strs) {
// trie 解法
// 时间复杂度O(m) 空间复杂度O(m * n)
// tag: 二分法
// 时间复杂度 O(n*logm) 空间复杂度O(1)
if (strs.length === 0) return "";
if (strs.length === 1) return strs[0];
let minLen = Number.MAX_VALUE;
for (let i = 0; i < strs.length; i++) {
minLen = Math.min(minLen, strs[i].length);
}
let low = 0;
let high = minLen;
while (low <= high) {
const middle = (low + high) >> 1;
if (isCommonPrefix(strs, middle)) low = middle + 1;
else high = middle - 1;
}
return strs[0].substring(0, (low + high) >> 1);
};
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/atbire/leetcode.git
git@gitee.com:atbire/leetcode.git
atbire
leetcode
leetcode
master

搜索帮助