ARTS Week 2 (03/24/2019 - 03/30/2019)

Algorithm: 每周至少做一个 leetcode 的算法题
Review: 阅读并点评至少一篇英文技术文章
Tip: 学习至少一个技术技巧
Share: 分享一篇有观点和思考的技术文章

Algorithm

本周做了Reverse Integer

这题其实是个数学问题,整体可以看成一个2D Array,每个类似V型的排列是一个循环,每个循环都有2*numRows-2个character,把这个看成循环的size。除了第一行和最后一行,中间的几行都不只是单单的index+size。所以怎么找规律把中间的几个character的索引找到然后再按照遍历2D Array的方法遍历整个string就解决了。

方法是:

  1. 第一行为row 0,对于第一行来说,每个character的index都是循环数,每次加size
  2. 最后一行row numRows-1 也跟第一行一样,每个index都是循环加size,直到超出s.length()
  3. 中间的行数有些不同,把每个V型循环看成一个整体,第0行和最后一行都是只有一个index,中间的有两个,且第一行的是倒数第一个,也就是如果是第一个循环那么起始index是0,倒数第一个index是 size-1,第二行是倒数第二个,index是size-2,第i行是size-i。如果是第二个循环,设起始index是t,那么第i行是t+size-i。那么我们遍历二维数组,每一行的V型循环的竖线部分都是最先算出来打起始位置,所以我们要找到V型循环的开头,然后加上size-i,这一行的第i行的竖线位置的index是j,V的开头的index就是j-i,那么下一个就是j-i+size-i

Review

因为上了Architecture in AWS的课,这周读了一篇关于EC2的文章,虽然有点老,但是对于新接触AWS方面知识的人(比如我)还是很有帮助的。

Why an EC2 Instance Isn’t a Server

我在刚开始学这个课的时候,总是思维惯性的把一个EC2 instance理解成一个虚拟的server,因为我们大多数使用它的时候都是ssh into it and we can launch any application on it。但是EC2实际上只提供计算资源,,其他的功能比如数据存档,备份,DB,是需要配合其他的AWS功能来实现的,S3,Glacier,Dynamo等等。而且EC2通过ASG(auto scaling group)是可以随时被替换的,在设计自己的系统架构的时候就应该跨越availability zone部署VPC,使得程序可以非常reliable。

  1. OS
  2. Network
  3. ML (MLU?)
  4. AWS
  5. React
  6. Guice,Spring
  7. code complete
  8. Algorithm (review)

Tip

分享几个git的命令

git 合并Command

1
2
3
4
5
6
git log //find landmark
git rebase -i logNumber //注意这个lognumber不参与合并
change pick to s or squash
fix conflicts
git add
git rebase --continue

用less查看log的时候

1
2
gg // scroll to the top of the log
shift f or g //scroll to the bottom of the log

Share

分享一篇react的文章,组里用react做前端,最近在学react

Thinking in React