ARTS是什么? Algorithm:每周至少做一个LeetCode的算法题 Review:阅读并点评至少一篇英文技术文章 Tip:学习至少一个技术技巧,总结和归纳日常工作中遇到的知识点 Share:分享一篇有观点和思考的技术文章
Algorithm
完成leetcode算法第14题。
使用最简单的暴力匹配完成,但是发现在minLength的处理上可以用官方题解的二分法去优化,下次可以注意。
/**
* 编写一个函数来查找字符串数组中的最长公共前缀。
* 如果不存在公共前缀,返回空字符串 ""。
*
* 示例 1:
* 输入:strs = ["flower","flow","flight"]
* 输出:"fl"
* 示例 2:
* 输入:strs = ["dog","racecar","car"]
* 输出:""
* 解释:输入不存在公共前缀。
*
* 提示:
* 1 <= strs.length <= 200
* 0 <= strs[i].length <= 200
* strs[i] 仅由小写英文字母组成
*
* @author ohYoung
* @date 2021/9/24 22:25
*/
public class LongestCommonPrefix14 {
public static void main(String[] args) {
LongestCommonPrefix14 example = new LongestCommonPrefix14();
String[] strs = new String[]{"flower","flow","flight"};
System.out.println(example.longestCommonPrefix(strs));
strs = new String[]{"dog","racecar","car"};
System.out.println(example.longestCommonPrefix(strs));
}
public String longestCommonPrefix(String[] strs) {
int minLength = Arrays.stream(strs).min(Comparator.comparing(String::length)).get().length();
if (minLength == 0) {
return "";
}
while (minLength > 0) {
String target = strs[0].substring(0, minLength);
boolean match = true;
for (int i = 1; i < strs.length; i++) {
if (!target.equals(strs[i].substring(0, minLength))) {
match = false;
break;
}
}
if (match) {
return target;
}
minLength--;
}
return "";
}
}
Review
What’s new in Java 17
Java 17 是标准 Java 的新长期支持 (LTS) 版本,现已可供生产使用。我们从这篇文章可以看到Java17的新特性。
Tip
- 学习一门新技术需要先鸟瞰全貌,然后逐个攻破各个技术细节,切不可一开始就陷入细节
- 一条SQL语句的执行需要经过几个步骤:连接器的权限认证、查询是否命中缓存(MySQL8.0开始该功能被删除)、分析器的词法分析以及语法分析、优化器的语句优化,最后是执行器调用表对应的存储引擎的接口执行操作
- 值得注意的是,当一个用户连接成功时,这个连接的权限就是连接成功时的权限,即使他的权限被修改,也不会影响到已存在的连接
Share
程序员如何把控自己的职业
耗子叔给我们讲了这二十年他经历的技术变革,同时也给年轻人提出了一些建议,使我受益匪浅。Finish
预计完成时间:2021.09.13 ~ 2021.09.19
实际完成时间:2021.09.19[
](https://www.yuque.com/yigenranshaodexiongmao/fgx0oh/zp62pn)