• 【算法面试】数据结构算法面试指南


    一、算法学习有何好处

    1、培养逻辑思维和解决问题的能力

    2、提升代码质量

    3、超越自我而非超越他人

    二、如何学习

    2.1、初步修炼

    1、弄清没种算法解决问题和使用的先决条件,以下是一些典型例子:

    • 二分查找:要求函数具有单调性

    【例如】排好序的数组里找某个数是否存在(如果乱序,则不可直接进行二分查找)

    • 双指针:要求问题本质上具有决策单调性

    【例如】一个数组中的连个下标L1和L2,假设L1<L2,L1对应的方案R1需要小于或等于L2对应的方案R2,这样在L不断往右移动的过程中,R也可以停止或往右移动,从而使得L和R均为从头到尾遍历一次。【切记不能忙不给面试官回答能不能用什么方法,问题没看透彻】

    • 动态规划:要求状态的设计和转移策略不会带来后效性
    • 迪杰特斯拉求最短路:要求图上无负环

    2、分析时间复杂度 & 空间复杂度

    • 首先考虑时间复杂度的数量级
    • 在数量级已经最优的情况下,尽量做到常数最小

    3、用不同思路解决同一问题

    2.2、进阶修炼

    总结回顾,发现不同算法之间的关联性、异同点

    • 思考广度优先搜索,迪杰特斯拉已经SPFA之间的关系不同 
      • 给定一个无向图,边权值均为正且相同,求从1号节点到n号节点的最短路径   【广度优先就可以解决】
      • 给定一个无向图,边权值均为正且不同,求从1
  • 相关阅读:
    代码源每日一题div1 DP 数组划分
    【Numpy】给数组增加一个维度
    多个vtk文件合并
    html使用天地图写一个地图列表
    ZCC1005Q-100V同步降压,内置MOS,输出电流5A
    IP地址查询
    Java也能做OCR!SpringBoot 整合 Tess4J 实现图片文字识别
    算法leetcode|1370. 上升下降字符串(rust很好用)
    又双叒叕!微信8.0.42内测更新来了!
    PHP 5 MySQLi 函数
  • 原文地址:https://blog.csdn.net/ckq707718837/article/details/125423878