14. 最长公共前缀

思路

以第一个字符串为基点,遍历对比

代码

  1. /**
  2. * @param {string[]} strs
  3. * @return {string}
  4. */
  5. var longestCommonPrefix = function(strs) {
  6. if (!strs.length) return '';
  7. let prefix = '', firstLen = strs[0].length;
  8. for(let i = 0; i < firstLen; i ++) {
  9. for(let j = 1; j < strs.length; j++) {
  10. if (strs[j][i] !== strs[0][i]) {
  11. return prefix
  12. }
  13. }
  14. prefix += strs[0][i]
  15. }
  16. return prefix
  17. };

复杂度分析

时间复杂度 公共前缀 - 图1#card=math&code=O%28N%5E2%29)
空间复杂度 公共前缀 - 图2#card=math&code=O%281%29)