zoukankan      html  css  js  c++  java
  • 九章算法:独孤九剑

    这逼课上了也没啥用,都是很粗线条的框架,说了跟没说似的。哦不,独孤九剑有用。

    (大部分来自天纯的pdf笔记)
    不咋考:如果问连通性,静态就是 DFS,BFS,动态就 UF
    不咋考:如果问依赖性就 topo sort
    不咋考:DAG有向没环路图 的问题就 dfs+memo 
    确实要小心但其实也不咋考:矩阵和 Array 通常都是 DP
    确实要小心但其实也不咋考:问数量的通常都是 DP
    确实要小心但其实也不咋考:问是否可以,也很有可能 DP

    加了:求所有解的,基本 backtracking
    排序总是可以想一想的
    万事总可以想HashMap
    找规律试试Stack

    碰到二叉树的问题,就想想整棵树在该问题上的结果 和左右儿子在该问题上的结果之间的联系是什么

    独孤九剑 —— 破剑式:比O(n)更优的时间复杂度 几乎只能是O(logn)的二分法

    独孤九剑——破枪式
    能够用 BFS 解决的问题,一定不要用 DFS 去做! 因为用 Recursion 实现的 DFS 可能造成 StackOverflow!
    (NonRecursion 的 DFS 一来你不会写,二来面试官也看不懂) 

    总结:先想最短路的BFS,再想所有路的DFS(backtracing)

    独孤九剑 —— 破鞭式 碰到让你找所有方案的题,一定是DFS。 90%DFS的题,要么是排列,要么是组合

    独孤九剑 —— 破索式 链表结构发生变化时,就需要 Dummy Node

    独孤九剑 —— 破掌式 对于求 2 个变量如何组合的问题,可以循环其中一个变量,然后研究另外一个变量如何变化

    独孤九剑 —— 破箭式 BFS 的主要数据结构是 Queue
    DFS 的主要数据结构是 Stack 千万不要搞反了!很体现基础知识的扎实度!

  • 相关阅读:
    过滤器详解
    Servlet-----response.getWriter().write()与out.print()的区别
    电子凭证 : Java 生成 Pdf
    Servlet生命周期与工作原理(转载)
    【转载】(String)、toString、String.valueOf的区别
    开发过程中关于JSON的那些事
    UEditor问题整理
    SUBSTR函数
    SQL中 decode()函数简介
    合并单元格相关问题
  • 原文地址:https://www.cnblogs.com/immiao0319/p/12116457.html
Copyright © 2011-2022 走看看