原題地址:https://leetcode-cn.com/probl...
題目描述
分析題目
對於這道題最直觀的感覺就是:
- 找到第一個字符串
target
- 進行按列的水平掃描
我的代碼如下:
/**
* @param {string[]} strs
* @return {string}
*/
var longestCommonPrefix = function(strs) {
if (!strs || !strs.length) {
return ''
}
let target = strs[0]
for (let i = 0; i < target.length; i++) {
for (let j = 1; j < strs.length; j++) {
if (strs[j][i] !== target[i]) {
return i > 0 ? target.slice(0, i) : ''
}
}
}
return target
};
- 時間複雜度:
O(s)
,s = m + n
(s就是總的字符串的長度) - 空間複雜度:
O(1)
當然,這道題還有其他解法,比如二分法、分治法,官方題解 已經寫得非常細緻了,這裏就不重複寫了。
寫在最後
一直在 LeetCode 上刷題,之前還加入了組織,有興趣加入一起學習的同學可以在下方留言或者關注我的微信公衆號「tony老師的前端補習班」並在後臺留言,可以進羣跟大佬們一起學習。