zoukankan      html  css  js  c++  java
  • 九.labuladong公众号总结

    一,算法刷题的框架思维

    1.数据结构基本操作:查增删改,遍历

    遍历:线性:for/while遍历(数组,链表),非线性:递归遍历(链表,二叉树)

    2.二叉树是最容易培养框架思维的,而且大部分算法技巧,本质上都是树的遍历问题

      所以二叉树的遍历非常重要,尤其递归遍历(回溯,动规,分治,只要涉及到递归的问题,都是树的遍历问题)

    3.回溯算法就是一个N叉树的前后序遍历问题,没有例外

    二,链表

    1.对于链表的题目,双指针法运用很多

    2.链表的两个技巧:双指针法,虚拟头节点

    3.链表的递归操作也很多。比如遍历就可以递归遍历

    4.N23合并k个有序链表。

    创建优先级队列的时候,传入2个参数:队列大小,比较器。(构造的时候传入初始容量可以提高效率)

    5.在快慢指针法中,fast=null && fast.next != null  ,否则会发生空指针异常

    6.算法题中的排序:Arrays.sort(),Collections.sort(),优先级队列

    7.回文相关

    解决此问题的核心是:双指针

    反转字符串:reverse,双指针法  判读回文串:reverse,双指针法

    (1)N125 判读回文串

    (2)N5最长回文子串***  有难度

    (3)N516最长回文子序列***  要用到动态规划

    (4)N234回文链表***  可以做一下,用到了链表的递归遍历

    三.LRU

    1.N146

    (1)LinkedHashMap像是一个可以随机存取的双端队列

    2.LFU

    这个得熟悉LinkedHashMap源码,得熟悉HashMap源码

     3.LinkedHashMap和TreeMap可以看做是一个双端队列,获取队头元素要用迭代器的next方法

     4.N155最小栈

    ***判断两个变量是否相等时,一定要想一想是用==还是equals

     设计循环队列和设计双端循环队列看看

    4.单调栈,单调队列

    栈的存取顺序相反,队列的存取顺序一致 

    四。二叉树

    1.递归算法的关键是要明确这个函数的定义。写二叉树的算法题,都是基于递归框架的,我们先要搞清楚root节点它自己要做什么,然后根据题意选择使用前序,中序,后序的递归框架。

    2.

    五。回溯backtrack(第二次做随想录题目的总结)

    1.回溯是一种搜索方式,通过dfs实现。回溯就是在遍历一棵决策树(N叉树)。因为回溯法解决的都是在集合中递归查找子集,集合的大小就构成了树的宽度;递归的深度,构成的树的深度。for循环,横向遍历;递归,纵向遍历

    2.回溯需要思考3个问题:路径,选择列表,结束条件

    (递归需要思考三个问题:定义,选择列表,递归表达式(递归逻辑,递归实现))

    3.回溯算法框架:

    4.回溯算法就是在做选择

    每个节点有两个属性:路径(所做的选择),选择列表

    做的选择就是路径

    5.(1)ArrayList(Collection c)构造方法

    6.回溯可以解决:

    题型一:排列,组合,子集问题

    题型二:Flood Fill

    题型三:字符串中的回溯问题

    题型四:游戏问题

     7.没做出来的题

    8.全局变量可以放在参数里面,也可以放在外面

     9.树层去重,需要对数组排序

     10.遍历到叶子节点就结束了,其实真正的是遍历到叶子结点的下一层

    11.去重:同一树枝去重,同一树层去重

    同一树层去重需要先排序

    12.组合和子集都不能回头,正因为不会头,所以不用建userd数组

    排列可以回头

    13.回溯最关键的是要把决策树画出来

    14.N皇后问题

    (1)字符默认为:'u0000'(即空字符)

  • 相关阅读:
    Spring核心思想:IOC(控制反转)、DI(依赖注入)和AOP(面向切面编程)
    synchronized 与 lock锁的异同
    SpringMVC工作流程
    close()和flush()的区别
    MySQL—索引(Index)
    MySQL—事务(ACID)
    MySQL—存储引擎
    周学习笔记(16)——大三下
    周学习笔记(15)——大三下
    周学习笔记(14)——大三下
  • 原文地址:https://www.cnblogs.com/midiyu/p/15306419.html
Copyright © 2011-2022 走看看