美文网首页
【python面试指北】2.数据结构和算法

【python面试指北】2.数据结构和算法

作者: 知鱼君 | 来源:发表于2019-11-10 18:21 被阅读0次

1. collections模块

collections模块提供了一些内置数据结构的扩展

namedtuple:让tuple属性可读
deque:可以方便实现deque/stack
counter:需要计数器的地方使用
orderedDict:key的顺序是第一次插入的顺序
defaultDict:带有默认值的字典

2. dict底层结构

dict底层使用的哈希表

  • 为了支持快速查找使用了哈希表作为底层结构
  • 哈希表平均查找时间复杂度O(1)
  • cpython解释器使用二次探查解决哈希冲突问题

3. list/tuple区别

  • 都是线性结构,支持下标访问
  • list是可变对象,tuple保存的引用不可变
  • list没法作为字典的key,tuple可以(可变对象不可hash)

4. 什么是LRUCache?

least-recently-used替换掉最近最少的对象

字典用来缓存,循环双端列表用来记录访问顺序

5. 排序+查找,重中之重

  • 常考排序算法:冒泡排序、快速排序、归并排序、堆排序
  • 线性查找、二分查找等
  • 能独立实现代码(手写),能够分析时间空间复杂度
常用排序算法的时空复杂度

6. python数据结构常考题

  • 常见的数据结构,链表、队列、栈、二叉树、堆
  • 使用内置结构实现高级数据结构,比如内置的list/deque实现栈
  • leetcode或者剑指offer上的常见题

链表

  • 如何使用python来表示链表结构
  • 实现链表常见的操作,比如插入节点,反转链表,合并多个链表等

206 leetcode,反转链表

队列

队列是先进先出结构

  • 使用python的list或者collections.deque实现队列

  • 使用python的list或者collections.deque实现队列

如何用两个栈实现队列
实现获取最小值的栈

字典与集合

  • 哈希表的实现原理,底层其实就是一个数组
  • 根据哈希函数快速定位一个元素,平均查找O(1),非常快
  • 不断加入元素会引起哈希表重新开辟空间,拷贝之前元素到新数组

二叉树

前序:根左右
中序:左根右
后序:左右根

递归处理三种遍历

二叉树的镜像
层序遍历二叉树

堆:可以看做是完全二叉树的数组对象

heapq标准库,堆排序

topK问题

链表

  • 熟悉链表的定义和常见操作
  • 237 删除一个链表节点
  • 21 合并两个有序的链表

7. 白板编程

  • 刷题
  • 真正理解掌握
  • 打好基础
  • 常见排序算法和数据结构能手写
  • 多写多练
  • 一般可能一次很难写对
  • 尝试自己先思考,先按照自己的方式编写代码,提交后发现问题
  • 如果实在没有思路可以搜题解

相关文章

  • 【python面试指北】2.数据结构和算法

    1. collections模块 collections模块提供了一些内置数据结构的扩展 namedtuple:让...

  • 算法与数据结构(二)如何学习

    在上文 面试指北:算法与数据结构(一)开篇[https://mp.weixin.qq.com/s?__biz=Mz...

  • 个人 Python 书单

    入门: Beginning Python 数据结构: Python 数据结构 算法: Python 算法教程

  • 算法与数据结构

    数据结构 数据结构与算法分析_Java语言描述(第2版) 算法 计算机算法基础算法导论编程之法_面试和算法心得 c...

  • #算法与数据结构书籍

    数据结构 数据结构与算法分析_Java语言描述(第2版) 算法 计算机算法基础算法导论编程之法_面试和算法心得 c...

  • 10.数据结构和算法 初识

    1、数据结构与算法(Python) 数据结构和算法是什么?答曰:兵法! 1.1算法的概念 算法是计算机处理信息的本...

  • python数据结构与算法总结

    python常用的数据结构与算法就分享到此处,本月涉及数据结构与算法的内容有如下文章: 《数据结构和算法对pyth...

  • python学习资料

    算法:Python中数据结构和算法的最小例子https://github.com/keon/algorithms?...

  • 数据结构和算法系列

    一、简介 1. 什么是数据结构和算法? 2. 为什么要学习数据结构和算法? 3. 如何学好数据结构和算法? 4. ...

  • 01 | 为什么要学习数据结构和算法?

    01 | 为什么要学习数据结构和算法? (1)想要通关大厂面试,千万别让数据结构和算法拖了后腿 (2)业务开发工程...

网友评论

      本文标题:【python面试指北】2.数据结构和算法

      本文链接:https://www.haomeiwen.com/subject/pkyabctx.html