美文网首页
一些技巧

一些技巧

作者: yousa_ | 来源:发表于2020-06-15 09:16 被阅读0次
  1. 开辟数组空间

不好的写法

a = [0 for _ in range(10000000)]

好的写法

a = [0] * 10000000

注意,这样搞是不对的

a = [ [0]*1000 ] * 1000
不等于
a = [ [0 for _ in range(1000)] for _ in range(1000)]
第一种相当于对[0]*1000 作了1000次浅拷贝,也就是说,当修改a[0][0] = 1时,a[1][0]、a[2][0]...a[999][0]也变成了1

2.循环问题中的优化

在循环时,尽可能多的利用内层循环,把大循环放在内层,如:

for i in range(1000):
    for j in range(100):
        for k in range(10):
            operation()
差于
for i in range(10):
    for j in range(100):
        for k in range(1000):
            operation()

3.import math

Pyhton中的math库和cmath库直接调用C语言中的函数接口,因此使用起来效率更高。
比如对于求幂次方的函数pow(),使用python自带函数pow()的时间复杂度为o(logn),而math.pow()执行浮点取幂,时间复杂度为o(1)

  • 需要注意的是
    使用math库时可能会出现数值越界的情况,C语言中的Integer不足以处理大型数据,因此我们这里最好用python自带的pow函数hhhh,二级反转。
    举个例子:我们计算3^100,下面分别是math.pow()和pow()函数返回的结果


相关文章

网友评论

      本文标题:一些技巧

      本文链接:https://www.haomeiwen.com/subject/ethetktx.html