书签 分享 收藏 举报 版权申诉 / 29
上传文档赚钱

类型第4次面试算法讲座课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:3283463
  • 上传时间:2022-08-16
  • 格式:PPT
  • 页数:29
  • 大小:1.99MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《第4次面试算法讲座课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    面试 算法 讲座 课件
    资源描述:

    1、第4次 算法&面试 讲座单调队列单调堆栈二叉树遍历(前、中、后)杨氏矩阵查找快排partition及变形荷兰国旗第一个缺失的正整数(排列判断)如果hash是O(1)2-sum最长无重复字符的子串字符串(KMP)最长回文子串前缀相关公司一般没有自己的题库,即使有,面试官也有权自己选择问题面试成功=实力+运气灵活掌握,千万别背题!例1 判断括号是否合法输入只有6种字符的字符串,()判断字符是否合法?左括号入栈,右左括号看栈顶?Match就出栈,否则就错误。例2 数轴上一群鱼,从左到右的顺序知道每条鱼游动的方向(正负),每条鱼的速度相同,但大小都不同,如果大小鱼相遇,小鱼被吃掉,问最后剩几条鱼?扫一

    2、遍,遇到正方向入栈,负方向出栈直到一条被吃掉或者栈为空。例3 一个队列,每次进入一个数,不断查询求最近k个数的最大值?本质:对于一个新数x,则比它旧的且不超过它的数是没有用的。算法:如果新来一个数,把过期的扔掉,把比这个数旧的并且不超过它的数都扔掉。队列里的数是严格单调递减的。队首永远是最大值。例如K=2,数字是 4,5,3,2,7,8,1新数新数队列队列4454,535,3 4过期23,2 5过期77 3过期,2比7小88 7比8小18,1例4 给定一个数组和两个整数s=x?把数列改一下:ai=ai x sumi的定义不变:对每个sumi sumi sumi t,sumi sumi-t+1,

    3、sumi sumi s的最大值是否大于等于0?求等价于sumi-t,sumi t+1,sumi s的最大值 单调队列!算上二分的复杂度O(NlogM)例4 直方图最大面积矩形用堆栈对每一块找到它能延伸的左右边界对每一块 堆栈顶矮,这一块左边界确定,入 堆栈顶高,堆栈顶右边界确定,出 入栈时左边界确定 出栈时右边界确定 堆栈里的是递增的本质:中间的短板没有用!复杂度 O(n)2,1,5,6,2,3 新数新数堆栈堆栈说明说明H0=222入栈,左边界(-1)H1=112出栈,右边(1),1入栈,左边界(0)H2=55,15入栈,左边界(1)H3=66,5,16入栈,左边边界(2)H4=22,16,5

    4、出栈,右边界(4),2入栈左边界(1)H5=33,2,13入栈,左边界(4)H6=03,2,1,出栈 右边界(6)数据数据左右边界左右边界面积面积H0=2(-1,1)2H1=1(0,6)5H2=5(1,4)10H3=6(2,4)6H4=2(1,6)8H5=3(4,6)3普通图的遍历O(m),O(n2)树的遍历 O(n)二叉树的遍历 O(n)在遍历的时候,我们可以得到很多信息 树的高度,节点最大(小)值,从根到该节点的数字和?例5 判断二叉树是否相同?例6 在行列都单增的矩阵里查找一个数。查找9,15-11-7-8-9思考:(非线性)查找有几个正数?T(m*n)=T(0.75*m*n)+O(1)

    5、例7:荷兰国旗问题一个数组,只有0,1,2,给它排好序?循环不变式:0.p是0,q.n 1是2,p+1.i 1是1例8(排列判断)整数数组,返回从1开始第一个不在数组中得整数?把Ai换到AAi 1的位置即可例9 2-SUM,一个数组,找到其中两个值,使其和为给定的值X。一般做法:要排好序,两头扫。如果hash是O(1),则2-SUM 可以在O(N)时间内解决。可以先扫一遍都扔进unordered_map,再对每个数查找一遍X ai。复杂度O(N)。例10 给定数组,选择连个下标i,j满足ai aj的前提下j i尽可能大。如果一个数左边有小于等于它的,它不可能作为i。我们可以从左到右扫一遍,同时

    6、记录左边的最小值,把可以作为i的保存下来,放入堆栈。注意堆栈的值越靠顶越小。从右向左扫瞄可能的j。弹出i。继续扫。复杂度O(n)。例如 4,3,5,2,1,3,2,3可能的i有4,3,5,2,1,3,2,3然后从右到左扫描 j,对每个j,找到尽可能左的i。堆栈里弹出的是已经找到尽可能大的j了,所以不会再后面考虑了。例11 x轴上每个位置有一棵树直向上的直线,以数值的直线为边界,中间的部分当做一个容器,问最多能盛多少水?两个轴位置i j注意现在一定有xj 0)表示从i开始的字符串和原串能匹配的最长前缀长度。能否O(n)求出pi?套用Manacher算法,假设p1.i 1都已经算好了,原先框最右边界是right,该框对应的左边界是left。我们要计算pi,(1)如果right=i,即i被框住了,i的位置相当于原串的开头的什么位置?i=i left!我们看看pi 由p的定义,注意,在框内的部分i和i往后都是一样的 不出框的话pi至少是min(pi,right i+1)出框的部分暴力比较,更新right,left。同理,考虑右边界,更新的次数,算法是O(n)的。http:/ 曹鹏博士cao_谢谢各位!

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第4次面试算法讲座课件.ppt
    链接地址:https://www.163wenku.com/p-3283463.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库