美文网首页
一些技巧

一些技巧

作者: 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