快速判断时间复杂度和空间复杂度

喜欢就关注我吧,订阅更多算法小知识
原文链接

1.1时间复杂度

O(1)

代码只被执行一次

O(n)

for循环里的代码执行了n次

O(1)+O(n)= O(n)

当n足够大 ,1可以忽略不计

O(n)*O(n)= O(n^2)

如果存在嵌套就相乘

O(logN)

用于求2的多少次方为N

1.2空间复杂度

一个函数,用大O表示,比如O(1)、O(n)、O(n个2)…

算法在运行过程中临时占用存储空间大小的量度

O(1)

单个变量所占的空间永远为1

O(n)

数组里面有n个值,占用了n个内存单元

O(n^2)

为矩阵即行列

本质是一个嵌套的二维数组,存储了n的二次方个变量

再用一道算法题解释一下这个概念

var isValid = function(s) {
    if(s.length %2 ===1){return false;} //性能优化,如果为奇数就不往下执行了
    const stack = [];
    for (let i=0;i < s.length;i +=1){
        const c = s[i];
        if(c==='('|| c==='{'|| c==='['){
            stack.push(c);//入栈

        }else{
            const t =stack[stack.length -1];
            if(
                (t==='('&&c===')')||
                (t==='{'&& c==='}')||
                (t ==='['&& c===']')
            ){
                stack.pop ();//出站
            }else{
                return false;//匹配失败
            }

        }
    }
    return stack.length ===0;

};

上面代码中

只有一个for循环

时间复杂度为O(n)

for循环里的代码执行了n次

空间复杂度:O(n)

数组里面有n个值,占用了n个内存单元

整理了一些绝密大厂实践经验视频面试指南前端学习书籍,悄悄送给小伙伴们。关注前端大数据回复暗号【7】自行领取。让我们一起探讨技术、分享技术资料,旨在共同学习进步,如果感兴趣就加入我们吧!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小助手爱编程

打赏千万不能超过您的早餐钱哦!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值