ARTS-Week-1
1 Algorithm
反转数组-7-简单:
https://leetcode-cn.com/problems/reverse-integer/
描述:
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−2^31, 2^31 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
提示:-2^31 <= x <= 2^31 - 1
示例 1:
输入:x = 123
输出:321
示例 2:
输入:x = -123
输出:-321
示例 3:
输入:x = 120
输出:21
示例 4:
输入:x = 0
输出:0
思路:
逆序输出
记录输入整数的符号
将整数转换为字符串
对字符串做逆序遍历,得到新的字符串
将字符串转换为整数(越界判断)
首尾交换
记录输入整数的符号
将整数转换为字符串
将字符串转换为字符数组
对字符数组做首尾交换,得到新的字符数组
将字符数组转换为字符串
将字符串转换为整数(越界判断)
数学思维
将整数对 10 做取余,得到最后一位
将整数对 10 做取模,得到新的整数
重算①②的操作
实现:
反思:
如果输入参数为数字,就思考能否使用数学思维来解答。
如果可以,数学思维往往是最佳的方式。
2 Review
具有产品思维的工程师:https://blog.pragmaticengineer.com/the-product-minded-engineer/
站在产品的角度看需求,用户真正的痛点是什么,是不是一定要做这个需求。
站在产品的角度看问题,用户为什么觉得这是一个问题,用户期望的结果是什么。
站在产品的角度做沟通,不通过专业术语,只用一些大家都知道的业务名词完成沟通。
3 Tips
聊聊内存:
Kubernetes 中,容器被系统杀掉,只有一种情况,就是容器中的进程使用了太多的内存。
Redis 进行 AOF 重写的时,如果写请求是 bigkey,就会申请更大的内存,这次写会阻塞主进程。
Linux 中,进程可以申请超过实际可以用的内存,但是不能使用超过实际可以用的内存。
Kafka 吞吐量高的一个原因是,消费者读取的消息不经过磁盘 IO,直接从 PageCache 中读取。
MySQL 为了提升写的性能,即写操作不经过磁盘 IO,引入了 Change Buffer 机制。
4 Share
写方案的套路:
为什么。这个方案解决了用户什么痛点。
做什么。通过哪些方式,路径,可以解决用户需求。
怎么做。针对每一种方式,具体要做什么。
下一步。这个方案落地后,下一步计划是什么。
评论