分享

Python算法与设计模式面试题汇总!

 老男孩IT教育 2021-12-17

  之所以很多人会选择学习Python,是希望日后可以找到适合自己的工作岗位,获得更好的发展机遇。当然,想要快速就业,除了要学习好Python技术之外,对于面试环节的问题也要有所了解,这样才可以做到知己知彼、百战百胜,本篇文章小编为大家整理了一些有关Python算法与设计模式的面试题,希望对你们有用。

  1、顺序表、链表的区别及应用场景。

  2、哈希树的构造与应用场景。

  3、B Tree和B+ Tree的区别?

  4、什么是中序遍历?

  5、具有三个节点的二叉树有几种形态

  6、边的集合E=[(a,b), (a,e),(a,c),(b,e),(e,d),(d,f),(f,c)], 则从顶点a出发进行深度优先遍历可以得到一种顶点序列为

  A. aedfcb

  B. acfebd

  C. aebcfd

  D. aedfbc

  7、一颗具有n个节点的平衡二叉树, 其平局查找长度为

  A. O(1)

  B. O(log2n)

  C. O(n log2n)

  D. O(n2)

  8、以下序列中不是二叉堆的是

  A. 100,86,48,73,35,39,42,57,66

  B. 12,70,33,65,92,41,40,81,75,99

  C. 103,97,56,38,89,23,45,10,37,52,6

  D. 7,32,10,53,90,27,41,70,61,82

  9、快速排序按排序思想分类属于

  A. 基数排序

  B. 选择排序

  C. 插入排序

  D. 交换排序

  10、奇偶交换排序

  如下所述:

  第一趟对所有奇数i ,将a[i]和a[i+1]进行比较;

  第二趟对所有偶数i, 将a[i]和a[i+1] 进行比较, 若a[i]>a[i+1], 则两者交换;

  第三趟对奇数i, 第四趟对偶数i, 以此类推, 直至整个序列有序为止. 若有初始序列为逆序, 规模为7的有序序列, 欲通过奇偶交换排序获得正序序列, 则排序过程中所需的数据交换次数为多少?

  A. 6

  B. 20

  C. 21

  D. 28

  11、对长度为N的线性表进行顺序查找, 在最坏情况下所需要的比较次数为

  A. N+1

  B. N

  C. ( N+1)/2

  D. N/2

  12、一直青蛙可以跳上一级台阶, 也可以跳上两级台阶, 求该青蛙跳上一个十级台阶共有多少中跳法

  A. 15

  B. 89

  C. 144

  D. 512

  13、合并两个有序的数组, 数组都是非递减的, 合并后的数组依然有序

  14、反转数字, 例子:输入123, 输出321; 输入-123, 输出-321; 输入1032100, 输出12301

  15、实现一个二分查找

  16、采用递归的方式用javascrapt写一下快速排序

  17、一个数组, 找到和为n的所有数对. 如[1,7,3,5,6,2,9,5,4,8] n=11,问 数对(7,4),(2,9),(5,6)…效率尽可能高

  18、简单描述下快速排序的原理。

  19、12个大小一样的球, 其中一个的重量与其他的不一样, 如何只称三次找出这只球

  20、Given a string s, find the lonest palindromic substring in s, you may assume that the maximum length of s in 1000;

  Example:

  Input: "babad"

  Output:"bab"

  Note:"aba" is also avalid answewr

  Example:

  Input: "cbbd"

  Output:"bb"

  21、括号匹配

  Given a astring containing just the characters'(',')','{','}','[',and ']', determine if the input string is valid.

  The brackets must close in the correct order, "()" and "()[]{()}" are all valid but "(]" and "([)]"are not

  22、假设在n进制下, 567*456=150216成立, 请问n的值是?

  23、给一个链表, 将其中的节点两两交换后, 返回链表的头结点

  实例:

  给出1->2->3->4

  你的程序应该返回这样一个链表: 2->1->4->3

  注意: 不能修改链表的节点的值

  25、给定一个整数数组, 返回两个数字的索引, 使得他们相加和一个目标值相等. 可以假设每个输入都有且只有一个解 例如 数组nums = [2,7,11,15], 目标值是9 因为nums[0]+nums[1]= 2+7=9 所以返回[0,1]

  26、编程实现斐波那契数列(注:使用递归)

  27、在数组中找到具有最大和的连续子数组(至少包含一个数字。例如, 给定数组[-2,1,-3,4,-1,1,1,-5,4],连续子阵列[4,-1,2,1]具有最大的sum=6

  28、请列举出三种常用的排序算法

  29、用4,9,2,7四个数字, 用加减乘除, 和每个数字(必须且只能用一次), 使表达式结果为24

  30、语言不限,实现以下问题

  ①链表的冒泡排序

  ②树的顺序遍历

  ③顺序表

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多