力扣视频笔记

时间复杂度

时间复杂度:算法的执行效率。算法的执行时间与算法的输入值之间的关系。

计算时间复杂度,就看算法里面有没有循环,有循环的话,这些常量单语句就不看了。没有循环,基本上就是o(1)了,

o(1):

算法与我们的输入num无关,都是常量时间。
不管我们的num值有多大,当前的算法执行的时间都不变。此时语句中无循环语句如for while
在这里插入图片描述

o(N):

执行一次total=0为a时间
执行for循环语句 一次为b时间,有num个(n个),则为nb使劲啊时间
执行return语句为c时间
所以总体时间为:a+nb+c
当n即num数很大时,为1000,10000.。。b c的这些单个时间就可以忽略不计。
因此总体时间为nb,计算时间复杂度时忽略前面的系数b,则为o(N)
在这里插入图片描述

o(logN):

单个语句为常量时间可忽略不计,while语句要循环logN次,这个例子中循环语句要循环在这里插入图片描述
循环时间为在这里插入图片描述
a为系数,是个常量,忽略
在这里插入图片描述

o(M+N):

里面有两个循环,这两个循环并列 加法
在这里插入图片描述

o(NlogN):

循环套循环 是乘法
在这里插入图片描述

o(N^2):

两个循环嵌套,乘法。两个N相乘。
在这里插入图片描述

对比

在这里插入图片描述

空间复杂度

算法的存储空间输入值之间的关系。
(占空间的都是我们声明出来的变量)
一个int变量为1个字节
看空间复杂度的时候,找的就是变量。
变量等于常量的情况下,永远都是o(1),是固定不变的。
一旦涉及array,list。。。多个数的集合的时候,空间就会随着nums的个数而改变。如o(N)
看看有没有递归,因为递归是一层一层一层往下的。是o(N),因为他会把信息存在递归站里面。

对比

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值