• 手把手带你刷Leetcode力扣


    B站:爱学习的饲养员

    目标:简单题、中等题会刷,至少有思路

    1. 算法的时间复杂度和空间复杂度

    1.1 时间复杂度

    1)什么是时间复杂度

    算法的执行效率 = 算法的执行时间与算法的输入值之间的关系

    2)大O表示法

    3)常用时间复杂度案例分析

    O(1)、O(logN)、O(N)、O(NlogN)、O(N2)

    O(1):时间复杂度和输入值没有关系

    O(logN):

    O(N):1层循环

    O(M + N):2个循环相加

    O(NlogN):1个循环套1个O(logN)循环

    O(N2):2个循环嵌套

    4)常用时间复杂度对比

    O(1) < O(logN) < O(N) < O(NlogN) < O(N2) < O(2n) < O(n!)

    二分查找O(logN)

    排序O(NlogN)

    1.2 空间复杂度

    1)什么是空间复杂度

    算法的存储空间与输入值之间的关系。

    2)大O表示法

    O(1)、O(N)

    O(1):常量

    O(N):array、list、linked list、递归

    O(N2):2个循环嵌套

    3)常用空间复杂度案例分析

    4)常用空间复杂度对比

    时间和空间只能二选一。面试时,和面试官讲清楚。工作时,时间 > 空间。

    2. 常用的数据结构

    2.1 数组Array

    1)定义

    数组:在连续的内存空间中,存储一组相同类型的元素。

    2)常用API

    创建数组:

    新增元素:尾插O(1)、中间插入O(N)

    访问元素(用索引下标访问元素): O(1)

    更新元素: O(1)

    删除元素:remove元素O(N)、pop(下标)O(N)、pop()O(1)

    获取数组长度:len(a)

    遍历数组:for in;for in enumerate; for in range

    查找某个元素:O(N)

    数组排序:

    2.2 链表 

    1)定义

    链表:

    特点:写很快读很慢,适用读少写多的情形

    2)考察项

    访问Access:O(N)

    搜索Search:O(N)

    插入Insert:O(1)

    删除Delete: O(1)

    3)常用API

    创建链表、添加元素、访问元素、查找元素、删除元素、链表的长度

    链表练习题:203 移除链表元素 206 反转链表

    3. 常用算法

  • 相关阅读:
    windows form之间传值方式
    .net几种页面传值得方式:
    .NET下的ORM框架介绍
    php+smarty批量生成静态文件
    Dedecms模块开发流程(一)
    php开启整站gzip(zlib)压缩最简单的方法
    coreseek实战(三):全文搜索在php中应用(使用api接口)
    coreseek实战(四):php接口的使用,完善php脚本代码
    php curl 多线程
    coreseek实战(一):windows下coreseek的安装与测试
  • 原文地址:https://www.cnblogs.com/yeahwell/p/14225101.html
Copyright © 2020-2023  润新知