我所认为的最好二叉树三序遍历

在此感谢 leetcode 网友提供的遍历方法

https://leetcode-cn.com/problems/binary-tree-inorder-traversal/solution/yan-se-biao-ji-fa-yi-chong-tong-yong-qie-jian-ming/

阅读全文

浅入哈希表

为什么人们都说 Hash 表查找的时间复杂度是 O(1)?

下面是我在 Stackoverflow 上看到的回答

阅读全文

罗马数字求和-leetcode13

题目来源

https://leetcode.com/problems/roman-to-integer/

阅读全文

Go并发打印数字

其实说白了就是流程控制,现在有三个 goroutine,如果控制他们顺序呢?

具体细节忘了,但好像美团面试官就是这么问的

当时没说明白,要是手写一下让面试官看下,说不定就不会挂掉了…

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package main

import (
"fmt"
"sync"
)

func main() {
c1 := make(chan struct{})
c2 := make(chan struct{})
group := sync.WaitGroup{}
group.Add(1)
go func() {
fmt.Println("g1")
c1 <- struct{}{}
}()

go func() {
<- c1
fmt.Println("g2")
c2 <- struct{}{}
}()

go func() {
<- c2
fmt.Println("g3")
group.Done()
}()
group.Wait()
}

阅读全文

Git常用命令

这里收集着我平时用到的Git操作 :)

推送到不同的分支

将本地的 master 分支推送到远程仓库的 fixreadme 分支

阅读全文

go的线程何时会阻塞

什么是协程

OS 并不理解 协程,协程是在 userspace 模拟出来的调度,协程运行在线程之上,所以协程没有上下文切换消耗。

阅读全文

Go与GC

常见的 GC 算法

引用计数

每个对象分别引用一个计数器 count,被引用则 count + 1,被释放则 count - 1,当 count0 时,该对象可以被清除

阅读全文

最长回文字串-leetcode5

题目来自

https://leetcode.com/problems/longest-palindromic-substring/

阅读全文

判断数组元素经变化之后是否相等

题目来自

https://www.nowcoder.com/questionTerminal/c55f4f15cc3f4ff0adede7f9c69fa0c1

阅读全文

如何优雅地使用Git合并多个commits?

你可能有过下面的经历

自己在本地开发,由于 Github 配置了CI,所以需要将新的代码 push到 github 来测试

所以你的 commit 上会有大量无用的 commitcommit message

阅读全文