Python Web后端面试常考数据结构与算法(珍藏版)

本文将对Python web后端面试时常考数据结构与算法进行总结,适合即将找工作或面试的你。Python web后端常考数据结构包括:

  • 常见的数据结构链表、队列、栈、二叉树、堆

  • 使用内置的结构实现高级数据结构,比如内置的list/deque实现栈

  • LeetCode或者剑指Offer上的常考题,本文将给出示例。

链表

链表有单链表、双链表、循环双端链表

  • 如何使用Python来表示链表结构

  • 实现链表常见操作,比如插入节点,反转链表,合并多个链表等

  • LeetCode练习常见链表题目,如翻转链表,如下所示:

合并两个有序链表

队列

队列(queue)是先进先出结构

  • 如何使用Python实现队列?

  • 实现队列的append和pop操作,如何做到先进先出

  • 使用collections.deque实现队列

栈(stack)是先进后出结构

  • 如何使用Python实现栈?

  • 实现栈的push和pop操作,如何做到先进后出

  • 使用collections.deque实现队列

字典与集合

Python dict/set底层都是哈希表

  • 哈希表的实现原理,底层其实就是一个数组

  • 根据哈希函数快速定位一个元素,平均查找O(1)

  • 不断加入元素会引起哈希表重新开辟空间,拷贝之前的元素到新数组

哈希表如何解决冲突

  • 链接法:元素key冲突之后使用一个链表填充相同key的元素

  • 开放寻址法:冲突之后根据一种方式(二次探查)寻找下一个可用的槽

  • cpython使用的二次探查

二叉树

先序、中序、后序

  • 先序 根左右

  • 中序 左根右

  • 后序 左右根

堆其实是完全二叉树,有最大堆和最小堆

  • 最大堆:对于每个非叶子节点V,V的值都比它的两个孩子大

  • 最小堆:对于每个非叶子节点V,V的值都比它的两个孩子小

  • 最大堆支持每次pop操作获取最大的元素,最小堆获取最小元素

  • 常见问题:用堆完成topK问题,从海量数字中寻找最大的K个

Python常考算法

排序+查找,重中之重

  • 常考排序算法:冒泡排序、快速排序、归并排序、堆排序

  • 线性查找,二分查找

  • 能独立实现代码(手写),能够分析时间空间复杂度

常见排序算法的时空复杂度

排序算法的稳定性

  • 相同大小的元素在排序之后依然保持相对位置不变,就是稳定的

  • r[i]=r[j]且r[i]在r[j]之前,排序之后r[i]依然在r[j]之前

  • 稳定性对于排序一个复杂结构,并且需要保持原有排序才有意义

快速排序

快速排序经常问分治法(divide and conquer),快排三步走:

  • Partition:选择基准分割数组为两个子数组,小于基准和大于基准的

  • 对两个子数组分别快排

  • 合并结果

合并两个有序数组

  • 要求m+n复杂度内

归并排序

堆排序

二分查找

关于Python学习指南

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!

👉Python所有方向的学习路线👈

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)

在这里插入图片描述

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python学习大礼包👈

包括:Python开发工具、Python100道练习题、Python爬虫&数据分析&人工智能&办公自动化等学习资料

在这里插入图片描述

👉Python70个实战练手案例&源码👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉Python大厂面试资料👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

👉Python副业兼职路线&方法👈

学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。

在这里插入图片描述

👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方CSDN官方认证二维码或者点击链接免费领取保证100%免费

点击免费领取《CSDN大礼包》:Python入门到进阶资料 & 实战源码 & 兼职接单方法 安全链接免费领取

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值