leetcode每日一题(2021.5.7)——最长公共前缀

题目:最长公共前缀(简单)

一、题干

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""

 二、示例

示例 1:

输入:strs = ["flower","flow","flight"]
输出:"fl"

示例 2:

输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。

三、思考过程

  首先需要遍历数组中的每个元素,这个必须完成,数组至少遍历一次。

  查找两个字符串公共前缀的方法可以单独实现,然后在代码中调用并返回公共前缀,这个可以先不考虑。

  接下来先思考遍历过程,第一种方法是暴力求解,这种方式简单粗暴,只需要嵌套一个for循环把数组中的第一个元素和后面所有元素依次比较就可以实现。

  可以先尝试编写一下

  判断代码:

  

 

 

   执行代码:

  

 

 

   执行结果:

  

 

 

   显然,这不是最优结果,因为在compare方法中也有循环,compare方法也在循环中,所以时间复杂度是O(mn),这个属于次方级时间复杂度,显然不好,不过由于我技术有限也只能想到这么多。

  

官方解法:

 

 

 官方解法还有很多种,有兴趣可以去看看。

 

总结:

这道题对我这种菜鸟来说很不友好,很多测试用例是我没有想到的,对需求分析还是不够完善。

 

 

 


posted @ 2021-05-07 22:19  瑜琦  阅读(82)  评论(0)    收藏  举报