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 千万不要搞反了!很体现基础知识的扎实度!

  • 相关阅读:
    lamp----6 实现虚拟主机ssl安全
    lamp-----5 apache虚拟主机实现,发布多个独立站点
    lamp----4 虚拟目录
    lamp----3 访问控制
    Apache配置反向代理、负载均衡和集群(mod_proxy方式)
    lamp-------3 userdir发布用户站点
    lamp------2 发布站点
    [转]KDE/QT与GNOME/GTK比较
    为什么会有文字聊天
    [转]gdb结合coredump定位崩溃进程
  • 原文地址:https://www.cnblogs.com/immiao0319/p/12116457.html
Copyright © 2011-2022 走看看