写点什么

ARTS 打卡 第 17 周

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

ARTS 简介

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

Algorithm

力扣(LeetCode)42. 接雨水

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。

图片可以去 leecode 官网查看

上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 感谢 Marcos 贡献此图。

示例:
输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6
复制代码

解题思路:

第一次看到这道题的时候,感觉和11 盛最多水的容器很像,可以考虑使用双指针求解。

使用双指针既可以分别从左到右与从右到左,也可以两个指针以不同的速度行进。对于本题,可以考虑以不同的速度行走。

  1. 先找到数组中的最高点,这样就可以将其分为两部分,分别处理

  2. 使用两个指针 a,b,让 a 先走,左半部分中,如果 height[a]<height[b],则可以装水,让 a 继续走

  3. 否则他们之间没有容器,则令 a=b

  4. 走到最高处结束

  5. 右边也一样。

class Solution {    public int trap(int[] height) {
int length = height.length; if(length<=1){//第一次提交忘记限制 return 0; } int max = 0; int maxIndex = 0; for (int i = 0; i <= length - 1; i++) { if (height[i] > max) { max = height[i]; maxIndex = i; } } int sum = 0;
//左侧 int b = 0; for (int a = 0; a <= maxIndex; a++) { if (height[a] < height[b]) { sum = sum + (height[b] - height[a]); } else { b = a; } } //右侧 b = length - 1; for (int a = length - 1; a >= maxIndex; a--) { if (height[a] < height[b]) { sum = sum + (height[b] - height[a]); } else { b = a; } } return sum; }}
复制代码

ps:参考资料《剑指Offer:名企面试官精讲典型编程题(第2版)》

Review

学习-微服务架构模式系列,网站地址是:https://microservices.io

微服务架构-Pattern: Service Component Test

这篇文章的主要介绍了微服务架构下如何进行测试:服务组件测试

问题:使用微服务架构,会有很多服务,必然存在一个调用可能涉及多个微服务,那么如何测试

强制条件:端到端的测试(即启动多个服务的测试)是困难的、缓慢的、脆弱的和昂贵的。

解决方法,服务组件测试,使用测试代理测试其他服务

好处

  1. 更容易

  2. 更快

  3. 更可靠的

  4. 更便宜的

不足

  1. 可能出现通过测试但生产失败

需要解决 如何保证测试代理能够正确的模拟服务行为

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

Tips

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

ps:”~” 表示为 home 目录,”.” 则是表示目前所在的目录,”..” 则表示当前目录的上一层目录

-h 用人类可读的格式展示(G(千兆字节),M(兆字节),K(千字节)),大部分命令有这个参数

备份命令

tar 命令用于备份文件,本身不做压缩

格式:tar <操作参数> [选项] 文件或者目录

操作参数是指要做的动作,必选至少有一个,有:

  1. [-]A –catenate –concatenate 将一存档与已有的存档合并

  2. [-]c –create 创建一个新的存档

  3. 1.[-]d –diff –compare 比较存档与相应的未存档文件的不同之处

  4. [-]r –append 将文件附加到存档结尾

  5. [-]t –list 列出存档中文件的目录

  6. [-]u –update 仅将较新的文件附加到存档中

  7. [-]x –extract –get 从存档提取文件

  8. –delete 把指定文件从存档中删除(不要用于磁带!)

常用选项:

  1. -t 显示压缩文件的内容

  2. -z 支持 gzip 解压文件

  3. -j 支持 bzip2 解压文件

  4. -Z 支持 compress 解压文件

  5. -v 显示操作过程

  6. -l 文件系统边界设置

  7. -k 保留原有文件不覆盖

  8. -m 保留文件不被覆盖

  9. -W 确认压缩文件的正确性

  10. -f 指定压缩文件

1.解包:tar xvf FileName.tar2.打包:tar cvf FileName.tar DirName
复制代码

Share

分享最近对的学习,这次分享的是SpringBoot系列(1)-初识SpringBoot,可能会有不足之处,之后会根据理解继续修改。


发布于: 2020 年 09 月 21 日阅读数: 51
用户头像

引花眠

关注

还未添加个人签名 2018.06.11 加入

还未添加个人简介

评论

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