logo资料库

九章算法之二分法(Binary Search).pdf

第1页 / 共29页
第2页 / 共29页
第3页 / 共29页
第4页 / 共29页
第5页 / 共29页
第6页 / 共29页
第7页 / 共29页
第8页 / 共29页
资料共29页,剩余部分请下载后查看
二分法 Binary Search 课程版本 4.0 主讲 令狐冲 扫描二维码关注微信/微博 获取最新面试题及权威解答 微信: ninechapter 微博: http://www.weibo.com/ninechapter 知乎: http://zhuanlan.zhihu.com/jiuzhang 官网: http://www.jiuzhang.com 禁止录像与传播录像,否则将追求法律责任和经济赔偿 第1页
上课须知 • 课程错过不补课,也不提供任何视频 • 你才会把在两个小时内集中精力,全神贯注 • 你才会把学习放在第一位,而不是先 LoL 一把,先逛个街,先和朋友吃个饭 • 你才会获得最佳的课程体验 • 良苦用心希望同学们理解 • 不允许建私群(包括QQ群,微信群) • 在QQ群中拉人私下组群的将被踢群并不再提供QQ答疑服务 • LintCode 需要单独先注册一个账户,不要使用九章的账号密码去登陆 • LintCode 阶梯训练必须先完成上一节课的作业,才能做下一节课的作业 • 课程各类服务的有效期为一年 • LintCode阶梯训练访问权限 • QQ群答疑 • QA答疑 • 课件 • 知识点小视频 禁止录像与传播录像,否则将追究法律责任和经济赔偿 Copyright © www.jiuzhang.com 第2页
新学员问题 • 新学员必读常见问题解答 • http://www.jiuzhang.com/qa/3/ • 第一节课错过了怎么办? • 报名下一期的《九章算法班》第一节课免费试听即可 • 学员QQ群是什么?怎么加? • 请登录官网在我的课程中查看QQ群号 • 九章的账户绑定到LintCode之后可以解除绑定么? • 不可以 • 因此不要把你的九章账户给别人使用 • 一些老学员的 LintCode 账号绑定了其他人的九章账户是因为你以前把账号共享给了其他人 • 你可以申请新的 LintCode 账户和你现在的账户进行绑定 • LintCode 相关问题请参见:http://www.jiuzhang.com/qa/683/ 禁止录像与传播录像,否则将追求法律责任和经济赔偿 第3页
Outline • 二分法基本功 • 时间复杂度小练习 • 递归与非递归的权衡 • 二分的三大痛点 • 通用的二分法模板 • 第一境界:二分位置 之 圈圈叉叉 Binary Search on Index - OOXX • 找到满足某个条件的第一个位置或者最后一个位置 • 第二境界:二分位置 之 保留一半 Binary Search on Index - Half half • 保留有解的一半,或者去掉无解的一半 • 第三境界:二分答案 Binary Search on Result • 压根看不出是个二分法! 禁止录像与传播录像,否则将追求法律责任和经济赔偿 第4页
Binary Search Given an sorted integer array - nums, and an integer - target. Find the any/first/last position of target in nums Return -1 if target does not exist. 禁止录像与传播录像,否则将追求法律责任和经济赔偿 第5页
T(n) = T(n/2) + O(1) = O(logn) 通过O(1)的时间,把规模为n的问题变为n/2 思考:通过O(n)的时间,把规模为n的问题变为n/2? 禁止录像与传播录像,否则将追求法律责任和经济赔偿 第6页
Time Complexity in Coding Interview • O(1) 极少 • O(logn) 几乎都是二分法 • O(√n) 几乎是分解质因数 • O(n) 高频 • O(nlogn) 一般都可能要排序 • O(n2) 数组,枚举,动态规划 • O(n3) 数组,枚举,动态规划 • O(2n) 与组合有关的搜索 • O(n!) 与排列有关的搜索 禁止录像与传播录像,否则将追求法律责任和经济赔偿 第7页
独孤九剑 —— 破剑式 比O(n)更优的时间复杂度 几乎只能是O(logn)的二分法 经验之谈:根据时间复杂度倒推算法是面试中的常用策略 禁止录像与传播录像,否则将追求法律责任和经济赔偿 第8页
分享到:
收藏