首页 > 编程语言 > 详细

Leetcode刷题预备基础知识(JavaScript版)

时间:2021-05-24 15:23:23      阅读:33      评论:0      收藏:0      [点我收藏+]

参考:https://www.bilibili.com/video/BV14f4y1C7hg
宝藏up主!

1.时间复杂度

技术分享图片

O(1)

技术分享图片

O(n)

复杂度看最高的
技术分享图片

O(n2)

技术分享图片
如果只是两个并列的for循环,时间复杂度还是O(n),100个并列的for循环,也是O(n)

这里有继承,两个循环分摊一个任务
技术分享图片

O(logn)

二分搜索

O(nlogn)

排序

优化的方法:从低-级的复杂度寻找灵感

  • O(n)->O(logn)使用二分搜索
  • O(nlogn) -> O(n)遇到需要排序的题,想想能否通过数组,set, map,heap解
  • O(n2)-> O(nlogn)遇到嵌套循环,想想能不能通过排序+-个for循环解

2.空间复杂度

O(1)

创建单一的变量
int a=1;
let b=1;
有很多题的空间复杂度是O(1)

O(n)

  • 定义一个长度为n的数组,一定是自己创建的
  • 定义一个长度为n的set, map
  • 用for循环生成一个长度为n的链表

O(n2)

  • 二维数组
  • 维数组每个元素存放一个长度为n的set或者map或者链表

Leetcode刷题预备基础知识(JavaScript版)

原文:https://www.cnblogs.com/My-Coding-Life/p/14804003.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!