# LeetCode Summary

## 第一步

1. **一定要问清题意！！！**
2. **一定要问清题意！！！**
3. **一定要问清题意！！！**

怎么问清题意？

* 一般**数字范围**，**字符集**需要确认
* 再手动跑一个例子

## 第二步

1. **一定要讲大致思路！！！**
2. **一定要讲大致思路！！！**
3. **一定要讲大致思路！！！**

什么是大致思路？

* 整个Sol可以分为几个part
* 略微具体地讲讲每个part做什么事情



1. **确定方向正确之后才可以写代码！！！**
2. **确定方向正确之后才可以写代码！！！**
3. **确定方向正确之后才可以写代码！！！**

## 第三步

写代码的时候，在开始一个逻辑前，大致讲这部分在做什么事情以及如何做到。

写完 helper function，再单独写个 unit test 来测试一下是否正确实现。&#x20;

所有代码写完之后再从头到尾梳理一遍。

## 第四步

1. **一定要 go through an example！！！**
2. **一定要 go through an example！！！**
3. **一定要 go through an example！！！**

最后再讲讲时间复杂度，空间复杂度啥的。

## 第五步

Can we do better?

**时间**、**空间**复杂度能否优化。

如果引入多线程（Concurrency），如何解决？

系统访问量很大，如何解决？

。。。。





