美文网首页
算法训练 -- 前言

算法训练 -- 前言

作者: 珺王不早朝 | 来源:发表于2020-12-26 17:16 被阅读0次

    此为 拉勾教育算法训练营 学习笔记
    如老师所说,学习任何知识之前,都要先有知识体系的概念,要先找到知识之间的联系
    知识体系比知识本身更重要,如果对知识体系掌握不全,就会在某个维度上缺少对知识的认知,形成漏洞或短板


    数据结构与算法 知识体系


    算法训练的最终目标:真正 掌握 数据结构与算法

    • 数据结构有哪些?怎么实现的?
    • 算法思维有哪些?怎么实现的?

    只有“胸有成竹”,才能“张口就来”!

    数据结构

    数据结构的核心任务是存数据
    计算机中,数据的存储方式只有两种:顺序存储 和 链式存储
    数组 => 顺序存储
    链表 => 链式存储(离散存储)
    数组和链表是最基础的数据结构,其他数据结构的底层实现要么基于数组,要么基于链表,要么基于数组+链表

    算法思维

    算法的核心任务是操作数据
    算法决定程序的效率
    程序效率的衡量 包括 两个维度:时间复杂度 & 空间复杂度(内存)


    6C 解题方法论

    1. Comprehend 理解题意
    关键点:分析问题根源,寻找解题思路,构建可行方案
    具体做法:尝试将问题提炼成模型,如:“这道题可以看做一个典型的xxxx问题!”

    2. Choose 选择数据结构与算法
    根据需求:选择数据结构,选择算法思维

    3. Code 编码实现基本解法
    使用注释,记录和梳理解题流程
    先编写主体代码(按照解题流程一步一步编写),并本地测试
    再处理边界问题,考虑特殊情况,并本地测试

    4. Consider 思考更优解
    寻找更好的 数据结构
      剔除无效代码,优化空间消耗
      删除不必要的操作、多余的变量、多余的数据结构,从而提高代码性能
    寻找更好的 算法思维
      例如:遇到数字相关的问题应该优先尝试使用数学方法实现功能
    参考和借鉴 其他算法

    5. Code 编码实现最优解

    6. Change 变形与延伸
    参考其他相关题目,或者思考改变本题的某个条件(操作对象的类型、范围等)后,该如何解决?


    刷题方法论

    学会立Flag,从少到多,从易到难,循序渐进

    笔记目录


    相关文章

      网友评论

          本文标题:算法训练 -- 前言

          本文链接:https://www.haomeiwen.com/subject/dhbunktx.html