ARTS 打卡 第 20 周

用户头像
引花眠
关注
发布于: 2020 年 10 月 18 日

ARTS简介

Algorithm 是一道算法题,Review 是读一篇英文文章,Technique/Tips 是分享一个小技术,Share 是分享一个观点。



Algorithm

力扣(LeetCode)45. 跳跃游戏 II



给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 你的目标是使用最少的跳跃次数到达数组的最后一个位置。



示例1:
输入: [2,3,1,1,4]
输出: 2
解释: 跳到最后一个位置的最小跳跃数是 2。
  从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。




说明:



  1. 假设你总是可以到达数组的最后一个位置。



解题思路: 如果我们每一次都能找到可以跳的最远的距离,那么最终可以用最少的次数到达最后(贪心算法) 对于[2,3,1,1,4] 开始位置a[0]是2,则最远可到a[2],所以只跳一次,最远可达a[2] a[1]可到达的最远位置是a[4],所有跳两次最远可达a[4],正好到达最后。



class Solution {
public int jump(int[] a) {
int length = a.length;
int count = 0;
int maxPosition = 0;
int end = 0;
for (int i = 0; i < length - 1; i++) {
//找到每个节点可达到的最远位置
maxPosition = Math.max(maxPosition, i + a[i]);
if (i == end) {//跳过边界,更新步数
//System.out.println(maxPosition);
end = maxPosition;
count++;
}
}
return count;
}
}



ps:参考资料



  1. 《剑指Offer:名企面试官精讲典型编程题(第2版)》

  2. labuladong 的算法小抄



Review

学习-微服务架构模式系列,网站地址是:https://microservices.io 微服务架构-Pattern: Single Service Instance per Host 这篇文章的主要介绍了微服务架构下如何进行部署:一个服务实例部署到一台主机 背景:使用微服务架构,会有很多服务,为了获得可用性和吞吐量每个服务发布一组实例 问题:每个服务如何打包和发布



强制条件



  1. 不同服务使用不同的语言、框架

  2. 提高吞吐量和可用性,每个服务都可能有多实例

  3. 服务必须能够独立部署和扩容

  4. 每个服务实例必须与其他实例隔离

  5. 每个服务快速打包部署

  6. 限制每个服务实例的资源使用情况

  7. 监控每个服务实例

  8. 可靠的部署

  9. 高效的部署



解决方法,将每个服务实例部署在自己的主机



好处



  1. 服务实例彼此隔离

  2. 没有冲突资源要求或依赖关系版本的可能性

  3. 服务实例最多只能消耗单个主机的资源

  4. 监控、管理和重新部署每个服务实例非常简单



不足



  1. 资源利用率可能很低



ps:《微服务架构设计模式》



Tips

记录我对于Linux的学习,备份压缩相关的命令:



ps:“~” 表示为 home 目录,“.” 则是表示目前所在的目录,“…” 则表示当前目录的上一层目录 -h 用人类可读的格式展示(G(千兆字节),M(兆字节),K(千字节)),大部分命令有这个参数



bzip2 系列

bzip2 是.bz2文件的压缩程序。 bunzip2 bzip2 bzcat是同一个程序,bunzip2 == bzip2 -d 格式:



  1. -c或–stdout  将压缩与解压缩的结果送到标准输出。

  2. -d或–decompress  执行解压缩。

  3. -f或–force  bzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖,请使用此参数。

  4. -h或–help  显示帮助。

  5. -k或–keep  bzip2在压缩或解压缩后,会删除原始的文件。若要保留原始文件,请使用此参数。

  6. -s或–small  降低程序执行时内存的使用量。

  7. -t或–test  测试.bz2压缩文件的完整性。

  8. -v或–verbose  压缩或解压缩文件时,显示详细的信息。

  9. -z或–compress  强制执行压缩。

  10. -L,–license,

  11. -V或–version  显示版本信息。

  12. –repetitive-best  若文件中有重复出现的资料时,可利用此参数提高压缩效果。

  13. –repetitive-fast  若文件中有重复出现的资料时,可利用此参数加快执行速度。

  14. -压缩等级  压缩时的区块大小



ps: bunzip2 (以及 bzip2 -d) 对所有指定的文件进行解压缩处理。不是由 bzip2 产生的文件将被忽略,同时发出一个警告信息。 bzip2 按下 列方式由压缩文件名确定解压后的文件名:



filename.bz2 解压成 filename
filename.bz 解压成 filename
filename.tbz2 解压成 filename.tar
filename.tbz 解压成 filename.tar
anyothername 解压成 anyothername.out

如果文件名的后缀不是下列之一: .bz2, .bz, .tbz2 或 .tbz, .bzip2 将抱怨无法确定原始文件名,并采用原文件名加 .out 作为解压缩
文件名。



bzip2 add.c add.s # 将原文件删除并压缩,后缀名为.bz2
bzip2 -d *.bz2 # 解压缩



bzip2recover - 恢复损坏的 bzip2 文件 格式:bzip2recover filename



Share

分享最近对的学习,这次分享的是SpringBoot系列(4)- 记录请求日志记,可能会有不足之处,之后会根据理解继续修改。



发布于: 2020 年 10 月 18 日 阅读数: 12
用户头像

引花眠

关注

还未添加个人签名 2018.06.11 加入

还未添加个人简介

评论

发布
暂无评论
ARTS打卡 第20周