Skip to content

Commit b921492

Browse files
authored
Update Python刷题技巧笔记.md
1 parent 5a1e832 commit b921492

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

docs/Leetcode_Solutions/Python/Summary/Python刷题技巧笔记.md

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -194,8 +194,14 @@ Operations on deque :
194194
```
195195
达尔大佬对刷leetcode和刷笔试题有几个建议:
196196
197-
1、一般oj是有要求时间的,一般是1秒。后台判题系统都是单核单线程跑,机器性能不会太好。1秒能运行的基本操作个数的量级是10^6-10^7,个别代码能跑到10^8,但很少见。这种情况下,看数据范围是可以大致了解到这个题目需要什么样子的时间复杂度。比如说,n<=1000的数据范围,o(n^3)的代码就不要写了,浪费时间而已。写代码之前得先计算自己代码的复杂度,预估自己代码跑的速度,再动手。
198-
2、基本操作指的是逻辑和加减法,乘法比加减法慢得多,但在大复杂度的前提下,这种复杂度是可以忽略的。比如说,在一个算法o(n^3)中,代码中一个两层嵌套循环o(n^2)就显得没什么优化意义了。优化代码主要优化算法复杂度,而那些,要不要用位运算代替除法啊,或者两个一层循环要不要合并成一个一层循环啊,没有意义,不要纠结,同级复杂度,才有优化意义
199-
3、高级编程语言每个api都有自己的复杂度,在没有了解复杂度之前不建议使用那些api,最好自己实现,比如哈希表啊,堆啊,什么语言都有实现,熟悉之前还是乖乖自己实现的好
200-
4、注意精度误差。。。比如开方,如果开方开的是一个整数,结果也是整数,最好写个二分,或者写个牛顿迭代求零点,不要用内置函数sqrt,求出来是个浮点数,会有误差
197+
1、一般oj是有要求时间的,一般是1秒。后台判题系统都是单核单线程跑,机器性能不会太好。1秒能运行的基本操作个数的量级是10^6-10^7,
198+
个别代码能跑到10^8,但很少见。这种情况下,看数据范围是可以大致了解到这个题目需要什么样子的时间复杂度。
199+
比如说,n<=1000的数据范围,o(n^3)的代码就不要写了,浪费时间而已。写代码之前得先计算自己代码的复杂度,预估自己代码跑的速度,再动手。
200+
2、基本操作指的是逻辑和加减法,乘法比加减法慢得多,但在大复杂度的前提下,这种复杂度是可以忽略的。比如说,在一个算法o(n^3)中,
201+
代码中一个两层嵌套循环o(n^2)就显得没什么优化意义了。优化代码主要优化算法复杂度,而那些,要不要用位运算代替除法啊,
202+
或者两个一层循环要不要合并成一个一层循环啊,没有意义,不要纠结,同级复杂度,才有优化意义
203+
3、高级编程语言每个api都有自己的复杂度,在没有了解复杂度之前不建议使用那些api,最好自己实现,比如哈希表啊,堆啊,
204+
什么语言都有实现,熟悉之前还是乖乖自己实现的好
205+
4、注意精度误差。。。比如开方,如果开方开的是一个整数,结果也是整数,最好写个二分,或者写个牛顿迭代求零点,
206+
不要用内置函数sqrt,求出来是个浮点数,会有误差
201207
```

0 commit comments

Comments
 (0)