纵向扫描法:按照公共前缀的特征可知从数组中首个字符串的首个字母往第二个字符串的首个字符依次向下比较都会相等,如果不相等则公共前缀字母到此结束
var longestCommonPrefix = function(strs) {
// 横向扫描递归,纵向扫描
// 理解好题目的意思,明确公共前缀有什么特点和最长有什么特点,可以得出什么条件
let result=''
if(strs.length===0){
return ''
}else if(strs.length===1){
return strs[0]
}
for(let j=0;j<strs[0].length;j++){
for(let i=0;i<strs.length-1;i++){
if(strs[i][j]!==strs[i+1][j]){
// 一旦不相等就马上返回
return result
}
if(i===strs.length-2){
result+=strs[i][j]
}
}
}
return result
};
时间复杂度O(mn),m是数组长度,n是数组中最短的字符串的长度,空间复杂度O(1),使用的额外空间复杂度为常数