ARTS 打卡 第 3 周
ARTS简介
Algorithm 是一道算法题,Review 是读一篇英文文章,Technique/Tips 是分享一个小技术,Share 是分享一个观点。
Algorithm
Lecode-5 最长回文子串
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
解题思路:
如果使用暴力方法,找到字符串的所有子串,判断是否为回文字符串,粗略估算一下,大概会使用O(n^3)的时间复杂度(查找所有子串O(n^2),判断回文O(n))。不过使用暴力法,时间复杂度非常感人,所以我们思考能否使用其他方式,比如动态规划、回溯等。
这里考虑使用动态规划(关于动态规划的解释,建议阅读《算法导论》),使用动态规划最重要的是找到状态转换方程,回文很容易找到转换方程,
如果我们使用dp[i][j]来表示字符串 s 的第 i 到 j个字母组成的串是否为回文串,则
如果
s[i]!=s[j]
,肯定不是回文字符串如果
s[i]==s[j]
,那么如果其子串也是回文,即dp[i+1][j-1]==true
,则dp[i][j]也是回文。做一些优化,如果只有一个字符,则肯定是回文字符串;如果有两个字符且字符相同,则是回文字符串;
Review
学习-微服务架构模式系列,网站地址是:https://microservices.io
微服务架构-Pattern: Decompose by business capability
这篇文章的主要介绍了分解模式:根据业务能力进行服务拆分:
当我们使用微服务的架构是,需要对整个应用进行分解,有多种分解的方式,这篇文章介绍的是根据业务能力进行分解。
分解服务的强制条件:
结构必须稳定
服务必须是高内聚的
松耦合的
可测试的
服务必须小,支撑团队小6-10
必须是自治的,与其他团队交互较少
在此种情况下,可以根据业务能力进行分解,企业的业务能力是业务能力是业务架构建模中的一个概念。它是一个企业为了创造价值而做的事情,比如:
将订单相关分解为订单服务
物流管理相关服务等等
这样的好处:
因为业务功能是稳定的,所以服务也相对稳定
使用业务划分团队时,团队较小,非常自治
Tips
记录我对于Linux的学习,从磁盘相关的命令开始:
ps:”~” 表示为 home 目录,”.” 则是表示目前所在的目录,”..” 则表示当前目录的上一层目录
-h 用人类可读的格式展示(G(千兆字节),M(兆字节),K(千字节)),大部分命令有这个参数
dir
命令用于显示指定工作目录下之内容
ls
用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)
常用的参数有:
-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
-a 显示所有文件及目录 (ls内定将文件名或目录名称开头为”.”的视为隐藏档,不会列出)
dirs
(不是dir)显示当前目录栈中的所有记录(不带参数的dirs命令显示当前目录栈中的记录)
ps:关于ls与dir命令之间的关系,可以看这篇文章‘dir’和’ls’终端命令之间的区别?
Share
分享最近对计算机基础的复习,这次分享的是信息的表示与存储-浮点数的表示,可能会有不足之处,之后会根据理解继续修改。
版权声明: 本文为 InfoQ 作者【引花眠】的原创文章。
原文链接:【http://xie.infoq.cn/article/32547c920ec5a638aaf7a4526】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论