ARTS 009

本贴最后更新于 1721 天前,其中的信息可能已经东海扬尘

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。

CODELF

从此以后再也不用为命名问题脑壳痛了。

相关帖子

回帖

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...