算法

  1. 第一步:记下相应的代码
  2. 递归思路:先完成一步,然后看剩下的步骤跟前一步是不是相同或者类似。
    1.   基例 + 链条
  3. 动态规划(DP):先采用递归思路(一般)或者其他思路, 设计状态,找到递推式;把计算的状态都保存起来,避免重复计算。
    1. 初始状态 + 递推式, 像递归的逆过程;一般反过来就加了条件,变成二维
    2. 一看就会,一做就废。
    3. 递归:从已知推到未知。
      1.  “人人为我”  n->1
      2.    ”我为人人“  1->n
    4. 二维数组设置的状态
      1.   基本靠猜
    5. max()函数头文件:include <algorithm>
    6. 难以习惯,需要大量刷题培养思维
  4. 深度优先搜索(DFS): 
    1. 回退是瞬间的,不耗费时间。
    2. 剪枝: 1.可行性剪枝, 2. 最优性剪枝(1.保存中间结果(预见性最优性剪枝) 2.保存最优结果)、
  5. 广度优先搜索(BFS ):
    1. 可确保找到最优解
  6. 贪心算法:
    1. 每一步行动总是按某种指标选取最优的操作来进行, 该指标只看眼前,并不考虑以后可能造成的影响。
    2. 贪心算法需要证明其正确性(替换法, )

 以上仅代表个人思考和学习过程记录,仍有不足之处,欢迎大佬们指出!

posted @ 2022-02-28 15:48  快乐的韭菜根  阅读(100)  评论(0)    收藏  举报