写点什么

ARTS 打卡 第 24 周

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

ARTS简介

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



Algorithm

力扣(LeetCode)62. 不同路径



一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 问总共有多少条不同的路径? 提示: 1 <= m, n <= 100 题目数据保证答案小于等于 2 * 10 ^ 9



示例 1:

输入: m = 3, n = 2
输出: 3
解释:
从左上角开始,总共有 3 条路径可以到达右下角。
1. 向右 -> 向右 -> 向下
2. 向右 -> 向下 -> 向右
3. 向下 -> 向右 -> 向右
示例 2:

输入: m = 7, n = 3
输出: 28。




解题思路: 这道题可以考虑使用动态规划的思路解决,因为只能向下或向右,则如果用dp[][]表示到达当前节点的不同路径数量,则它只与左侧相邻和上边相邻的节点有关系 所以动态规划表达式为dp[i][j] = dp[i - 1][j] + dp[i][j - 1]。 初始化状态dp[i][0] = 1;,dp[0][i] = 1,因为只有一种方式



class Solution {
public int uniquePaths(int m, int n) {
if (m <= 0 && n <= 0) {
return 0;
}
int[][] dp = new int[m][n];
// 第0列 和 第0行为边界 全为1
for (int i = 0; i < m; i++) {
dp[i][0] = 1;
}
for (int i = 0; i < n; i++) {
dp[0][i] = 1;
}
for (int i = 1; i < m; i++) {
for (int j = 1; j < n; j++) {
// 动态规划表达式 当前节点只是与上和左两个方向的节点相关
dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
}
}
return dp[m - 1][n - 1];
}
}



ps:参考资料



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

  2. labuladong 的算法小抄



Review

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



强制条件



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

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

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

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

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

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

  7. 监控每个服务实例

  8. 可靠的部署

  9. 高效的部署



解决方法,使用自动化部署发布平台,比如:



  1. Docker orchestration frameworks including Docker swarm mode and Kubernetes

  2. Serverless platforms such as AWS Lambda

  3. PaaS including Cloud Foundry and AWS Elastic Beanstalk



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



Tips

记录我对于Linux的学习,网络管理的命令:



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



netstat命令

netstat 显示网络状态包括网络连接,路由表,接口状态,伪装连接,网络链路信息和组播成员组。 格式: netstat [DESCRIPTION] [OPTIONS] DESCRIPTION netstat 程序显示Linux网络子系统的信息。 输出信息的类型是由第一个参数控制的



  1. (none) 无选项时, netstat 显示打开的套接字. 如果不指定任何地址族,那么打印出所有已配置地址族的有效套接字。

  2. -r 显示内核路由表

  3. -g 显示IPv4 和 IPv6的IGMP组播组成员关系信息

  4. -i 显示所有网络接口列表或者是指定的 iface 。

  5. -M 显示一份所有经伪装的会话列表

  6. -s 显示每种协议的统计信息



选项



  1. -a (all)显示所有选项,默认不显示LISTEN相关

  2. -c 每隔一个固定时间,执行该netstat命令。

  3. -e 显示扩展信息,例如uid等

  4. -t (tcp)仅显示tcp相关选项

  5. -u (udp)仅显示udp相关选项

  6. -n 拒绝显示别名,能显示数字的全部转化成数字。

  7. -l 仅列出有在 Listen (监听) 的服務状态

  8. -p 显示建立相关链接的程序名



netstat -a #列出所有端口 会显示很多信息
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 localhost:mxi *:* LISTEN
...

Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Path
unix 7 [ ] DGRAM 8277 /dev/log
unix 2 [ ACC ] STREAM LISTENING 6712 @/com/ubuntu/upstart

netstat -at # 列出所有 tcp 端口
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 localhost:mxi *:* LISTEN
...
netstat -i #显示网络接口列表
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 3501024 0 0 0 4266309 0 0 0 BMRU
lo 65536 0 585386 0 0 0 585386 0 0 0 LRU
netstat -r #显示内核路由表
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
172.17.208.0 * 255.255.240.0 U 0 0 0 eth0
link-local * 255.255.0.0 U 0 0 0 eth0
default 172.17.223.253 0.0.0.0 UG 0 0 0 eth0




Share

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



发布于: 2020 年 11 月 16 日阅读数: 23
用户头像

引花眠

关注

还未添加个人签名 2018.06.11 加入

还未添加个人简介

评论

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