剑指offer_02
文章目录
- 第二章 面试需要的基础知识
- 1.1 面试官谈基础知识
- 1.2 编程语言
- 1.3 数据结构
- 1.4 算法和数据操作
第二章 面试需要的基础知识
1.1 面试官谈基础知识
- 数据结构和算法,编程能力,部分数学能力,问题分析和推理能力
- 编程基础,计算机基础,算法设计
- 计算机操作系统,编程语言,数据结构
1.2 编程语言
- 考察形式
- 语言的语法
- 通过实际写代码解决问题
- C++
- 推荐的书籍<effect c++>
- 设计模式中单例模式时常常考的内容
1.3 数据结构
- 数据结构是技术面试中的重点
- 主要围绕着数组,链表,字符串,树,队列,栈几种常见的数据结构
- 数组和链表是面试中常常考的两种数据结构,由于使用了指针,应该注意程序的鲁棒性2.
- 数组
- 数组需要实现申明空间大小,数组支持随机存取,读取时间复杂度为O(1),插入删除操作时间复杂度为O(N)
- 动态数组的考察,数组和指针的关系
- 当我们遇到复杂的问题的时候,一个有效的方法就是从一个具体的问题入手,通过分析简单具体的例子,找出普遍的规律。(二位数组的查找)
- 字符串
- C/C++中的字符串都是以“\n”结尾的。
- 为了节省内存,C/C++把常量字符串放到单独的一个内存区域中,当使用几个不同的指针指向的时候,实际指向的是相同的内存地址。
- 常考的字符串的复制,比较,插入等。可以打破常规思维,从后往前遍历。
- 链表
- 链表是面试时候被问及最多的一种数据结构
- 链表的创建,插入删除节点和查询节点实现起来代码量都不大。
- 在面试中如果要修改输入数据时,最好问面试官是否允许进行修改。
在写测试用例的时候,常常分为功能测试和特殊输入测试。
- 树
- 树是一种在实际编程中常常用到的数据结构,由于树的实验涉及到大量的指针,所以面试中考的概率不大
- 面试中要考察的树常常为二叉树,常考查二叉树的遍历:
- 前序遍历
- 中序遍历
- 后序遍历
3种遍历方法都有循环和递归的时现,需要对这6种方法比较了解。
- 二叉树的另外两个特例是堆和红黑树
- 有很多快速找到最大值和最小值的算法都用到堆来实现
- 栈和队列
- 栈是一个非常常见的数据结构,在计算机中被广泛应用。
- 通常栈是一个不考虑排序的数据结构,找到最大值或者最小值需要O(N)的时间。
- 队列是另外一种比较重要的数据结构
- 对列和栈两个数据结构是相互联系的,可以相互表示。
1.4 算法和数据操作
重点掌握二分查找,归并排序,快速排序,能够做到随时随地快速准确的用代码实现他们。
很多算法都可以使用循环和递归实现,其中递归方法看起来代码简洁,但是性能不佳。
位操作应该也要进行掌握
- 查找和排序
- 查找和排序是程序设计中常用到的算法
- 查找比较简单,包括:顺序查找,二分查找,哈希查找和二叉树查找。
- 如果面试中要对一个排好序的数组或者部分排序的数组进行查找,都可以考虑使用二分查找的方法
- 哈希表最主要的优点是可以完成在O(1)时间内查找某个元素,但是需要额外的空间来实现哈希表。
- 二叉搜索树是树结构在查找算法中的应用。
- 排序算法比查找算法要难一些,需要我们对常见的一些排序算法熟记于心。
- 插入排序,冒泡排序,归并排序,快速排序等不同排序算法的优劣。
- 可以从空间消耗,平均时间复杂度和最坏时间复杂度去分析比较。
- 快速排序的代码常常被要求写出。
- 如果面试官要求实现一个排序算法,一定要问清楚排序算法的应用背景,再来决定使用哪种排序算法。
- 递归和循环
- 如归针对一个问题需要重复多次计算相同的问题,则可以使用递归或者循环两种方法。
- 递归代码相比于循环代码常常比较简洁;在树的前序,中序,后序遍历中常常采用递归算法。如果面试中没有说明用循环还是递归,最好先用循环实现后,再用递归实现。
测试用例:功能测试,边界值测试,性能测试
- 位运算
- 位运算是把数字用二进制表示后,对每一位上的0或者1进行运算。
- 熟练掌握2进制和10进制之间的转换关系,熟悉掌握二进制数的与,或,异或,左移好和右移操作。
剑指offer_02相关推荐
- 【剑指offer】顺时针打印矩阵
转载请注明出处:http://blog.csdn.net/ns_code/article/details/26053049 剑指offer上的第20题,九度OJ上測试通过. 题目描写叙述: 输入一个矩 ...
- 牛客网_剑指Offer_Python实现_更新中
剑指Offer编程题汇总 第1题_二维数组中的查找 第2题_替换空格 第3题_从尾到头打印链表 第4题_重建二叉树 第5题_用两个栈实现队列 第6题_旋转数组的最小数字 第7题_斐波那契数列 第8题_ ...
- 剑指Offer_Python实现
基于python的<剑指offer> 剑指Offer-Python答案 剑指Offer-面试题的Python实现 Python基础算法/剑指offer
- 销量过亿的《剑指0ffer》题目和答案电子书 (附下载)
如果有人问面试前该看哪些题,有什么书籍可以推荐,那么<剑指offer>一定必读不可,这本书书豆瓣评分高达 9.0 ,非常适合集中时间阅读.电子书下载 1.扫码关注「顶级架构师」订阅号 2. ...
- 剑指offer第二版答案详细版(带详细解题思路)
1.滑动窗口的最大值(剑指offer原59题) 解题思路:其实是一个队列的问题,用一个队列去维护当前窗口中的所有元素:首先将超出窗口中的队头元素先删掉,然后将新的元素插入当前窗口中,插入时要判断新插入 ...
- c语言一维数组逆序输出_剑指信奥 | C 语言之兵人来袭!
趣乐博思剑指信奥系列 ❝ 趣乐博思剑指信奥系列,专门针对全国青少年信息学奥林匹克联赛 NOIP 而开展的专业教育方案.开设的课程有 C 语言基础,C++ 语言基础,算法设计入门与进阶,经典试题分析与详 ...
- 【每日一题】剑指 Offer 10- I. 斐波那契数列
剑指 Offer 10- I. 斐波那契数列
- 【每日一题】剑指 Offer 22. 链表中倒数第k个节点
剑指 Offer 22. 链表中倒数第k个节点
- 递增的整数序列链表的插入_每日算法题 | 剑指offer 链表专题 (5)链表中倒数第k个节点...
点击上方"Jerry的算法和NLP",选择"星标"公众号 重磅干货,第一时间送达 题目 链表中倒数第k个节点 题目要求 输入一个链表的头结点,从尾到头反过来打印 ...
最新文章
- 你向 Mysql 数据库插入 100w 条数据用了多久?
- 自然灾害能否被利用?
- windows通过putty连接虚拟机Fedora
- 20220401 A满秩,B满秩,AB一定满秩
- Boost:assume aligned假设对齐的测试程序
- java new 面试_java面试30问
- OSL LLVM 3.3 Related Changes
- 5月第3周安全回顾 思科路由器Rootkit现身 企业需漏洞管理
- Atitit 提升语法级别4gl 4.5g 4.9g 5g 目录 1. 语言级别表 1 2. 4.9g实现细节 2 2.1. $dollor前导符 2 2.2. Static变量 2 2.3. S
- micropython ide 8266_老外开发的MicroPython IDE,可用于开发ESP8266
- DataFactory造数-常用的数据产生方式
- 【原创】新韭菜日记20---在国内股市亏钱的最大原因就是杠杆和割肉
- python界面编程实例_Python GUI编程 文本弹窗的实例
- 微信视频号头像怎么换?怎么设置?必看!5个思路帮你快速敲定头像
- CC(标准)版D碟收藏指南(四)
- 计算机专业硕士论文评语,硕士论文评审意见范文
- AMOS从模型到分析
- 老李的博客在这里安家了
- linux mii 调试总结
- C语言计算1000以内(含1000)既能被3整除也能被7整除的自然数的个数n
热门文章
- 找了个学习uboot makefile的好地方 不过不让转载 那就把网址分享一下吧
- C语言依次显示图片,c语言能显示图片吗
- 信道容量受哪三个要素_影响信道容量的主要因素有哪些
- 【转】SVN各种颜色状态
- 【转】刨根究底字符编码之二——关键术语解释(下)
- 【转】0.SharePoint服务器端对象模型 之 序言
- python 几何教学_opencv-python教程学习系列11-几何变换
- JAVA 捕获异常所遇BUG
- 【CodeForces - 798A】Mike and palindrome (回文串,水题,字符串问题)
- 【CF#2A】Winner(模拟 STL-map)☆