ARTS 是由左耳朵耗子陈皓在极客时间专栏《左耳听风》中发起的一个每周学习打卡计划。
Algorithm:至少做一个 LeetCode 的算法题。主要为了编程训练和学习。
Review :阅读并点评至少一篇英文技术文章。主要为了学习英文,如果你英文不行,很难成为技术高手。
Tip:学习至少一个技术技巧。主要是为了总结和归纳你日常工作中所遇到的知识点。
Share:分享一篇有观点和思考的技术文章。主要为了输出你的影响力,能够输出你的价值观。
Algorithm
二叉树的前中后序遍历
type TreeNode struct {
Val int
Left *TreeNode
Right *TreeNode
}
前序遍历
func preorderTraversal(root *TreeNode) []int {
res := []int{}
if root == nil {
return res
}
return append(append(append(res, root.Val), preorderTraversal(root.Left)...), preorderTraversal(root.Right)...)
}
中序遍历
func inorderTraversal(root *TreeNode) []int {
res := []int{}
if root != nil {
res = append(res, inorderTraversal(root.Left)...)
res = append(res, root.Val)
res = append(res, inorderTraversal(root.Right)...)
}
return res
}
后序遍历
func inorderTraversal(root *TreeNode) []int {
res := []int{}
if root == nil {
return res
}
return append(append(preorderTraversal(root.Right), preorderTraversal(root.Left)...), append(res, root.Val))
}
Review
Tips
golang mysql dateTime
以前一直用 int 存储 unix 时间字段,对于 datetime 默认会使用 UTC 时间,但是国内是东八区,也就是 Asia/Shanghai,需要注意时间差 8 小时。
- 构建 DSN 时增加 loc 指定时区,并区增加对时间的解析。打印出来的 uri
user:@tcp(127.0.0.1:3306)/test?charset=utf8&loc=Asia%2FShanghai&parseTime=true
- Golang 的时间类型也有时区概念,Golang 的 time 类型对应 msyql 的 datetime:
l, _ := time.LoadLocation("Asia/Shanghai")
time.Now().In(l)
thrift time out
- 现象
- 客户端 :抛异常
- 服务端 : broken pipe
- 原理
- 客户端设置超时时间,超时后断开 tcp 连接,抛出异常
- 服务端像建立的连接发送数据,发现 pipe broken
git 恢复到某版本
全部恢复
- 查看 log
git log
- 恢复到指定版本
git reset --hard 44f994dd8fc1e10c9ed557824cae50d1586d0cb3
指定文件
- 查看 log
git log -- filename
- 修改文件版本
git checkout hash filename
git 查看 commit 的文件列表
git log --name-only
Share
Phil Karlton 曾说“在 CS 领域中,有两件事是非常难的,一个是缓存失效,一个是命名。
今天分享一款工具——变量命名网站 Codelf。
从此以后再也不用为命名问题脑壳痛了。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于