剑指offer目录

小菜鸡也开始慢慢接触剑指offer啦,做一个目录方便以后查找

链表

链表的基础知识
链式线性表的基础知识
链式线性表的完整实现附代码
剑指offer中链表的相关题目如下所示。链表的相关题目对栈和链式存储的操作比较灵活,做题过程中需要考虑几个方面的因素:

  1. 算法的鲁棒性:每道题都要考虑空链表的可能性。比如面试题18_1删除链表的节点,需要考虑删除的节点处于头部、尾部、中间三种情况。
  2. 算法的技巧性: 两个指针的使用。如面试题22定义两个指针,让指针间隔k-1个节点,当走的早的指针指到末尾时,走的晚的指针刚好位于倒数第k个位置。如面试题52也是使用到两个指针,让指针在长链表上先走若干步,然后两个指针同时在长短链表上移动,当两个指针相同时,就是第一个公共节点。
  3. 算法先思考再编写:面试题23需要考虑依次考虑链表中是否有环、环的节点数、环的入口结点。只有考虑清楚解决题目的逻辑关系,就容易编写代码。
  4. 扎实的基本功:栈作为一种后进先出的存储结构非常适合面试题6,把链表元素存储在栈中并从栈顶输出;因为栈的应用--递归,所以面试题6优化算法可以使用递归实现。同理,面试题25也是递归的完美体现。依次比较并找出两个链表中较小的元素。

树的基础知识
二叉树的基础知识
创建二叉树并附完整代码

树的创建和遍历

二叉搜索树意味着该树是有序的。进一步解释为该树如果有左子树,则左子树所有节点的值均小于根节点的值,如果该树有右子树,则右子树所有节点的值均大于根节点的值。

树的性质
树的综合考察

字符串

会考察指针
c++的字符串类型string和字符类型char

栈和队列

栈和队列基础知识

多维数组(矩阵)

数组

数组基础知识

动态规划和贪婪算法

排序和查找算法

排序和查找基础知识

位运算


大数问题

C++基础

总结

第一遍刷题,只能说理解思路,并不能完整的写出代码。还需要不断的重复理解-->写代码-->训练逻辑的这个过程。我已经把所有代码上传Github,因为在网上找的帖子大部分都只有子函数,对于我这种小白理解代码还是很费劲的。所以如果你和我一样,那么你可以去我的Github上找到某道题对应的完整代码,补充了主函数很容易理解,容易上手。看算法题的基本都是准备找工作的同伴,大家一起加油呀!

ps:2020春招差不多已经过去,作为垃圾学校的一名非垃圾学生,在写论文的道路上完美错误春招。本人十分悔恨,痛下决定用15天刷了一遍算法题。想能不能追上末班车。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 注意事项判断输入是否合适,是否超出范围,是否为空,都要考虑齐全,求链表倒数第 k 个数,k小于0,链表长度小于 k...
    cb_guo阅读 453评论 0 0
  • 作者按:因为是和同学合买的书,所以不方便在书上勾画。特此记录。 1、面试题1:赋值运算符函数 内存泄漏、常量引用 ...
    Peggy_623阅读 514评论 0 1
  • 面试题3——数组中重复的数字 使用LinkedHashMap,有序存放。 面试题4——二维数组中的查找 首先选...
    做自己的Yang光阅读 493评论 0 0
  • 总结 想清楚再编码 分析方法:举例子、画图 第1节:画图分析方法 对于二叉树、二维数组、链表等问题,都可以采用画图...
    M_巴拉巴拉阅读 1,232评论 0 7
  • 目录 面试题3 在二维数组中查找 面试题15 链表中倒数第K个数 面试题16 反转链表 面试题44 扑克牌的顺子
    贾雨村甄士隐阅读 1,290评论 0 3