• Leetcode150二刷总结


    滑动窗口(ok)

    题号:3、209、76

    1. 定义好窗口的左边界left和右边界right
    2. 一般是只需要遍历right,满足条件后调整left

    链表

    题号:206、92、14625、21

    1. 反转链表主要是设置好pre(初始为null)和cur(初始为第一个需要反转的元素),依次往后遍历
    2. 伪头部节点ListNode dummy = new ListNode(0, head)
    3. LRU缓存使用双向链表和哈希表,注意提前声明Node的数据结构,put操作可能会修改value值。
    4. K 个一组翻转链表重点是确定好prestartendendNext
    5. 合并两个链表的时候,直接连接即可,无需new新节点

    快速排序

    题号:215、4

    1. 快速排序的核心思想是分治,选择一个哨兵,将序列分为大于哨兵的序列和小于哨兵的序列,再分别进行快速排序
    2. 因为是分别进行快速排序,所以一开始就不要把上下界设置死
    3. 快速排序

    双指针

    题号:15、

    1. List>中添加元素:

      List<Integer> list = Arrays.asList(num, nums[left], nums[right]);
      ans.add(list);
      
      • 1
      • 2

    一维动态规划

    题号:53、121、

    多维动态规划

    题号:5、

    1. 回文串:如果abcba是回文串,那么bcb也是回文串,c也是回文串,化解为子问题。

    堆排序

    题号:4

    1. 堆排序中,每次交换完之后,要从第0个位置向下调整,而不是从i开始调整。
    2. 堆排序

    数组

    题号:1
    1.

    二叉树

    题号:102

    1. 层序遍历注意Queue的使用

    二分查找

    题号:33

    1. 注意lr的遍历

    DFS

    题号:200

    1. 二叉树和图的DFS:(1)定义退出条件(二叉树是节点为null,图为行列超边界);(2)递归dfs(二叉树是递归自己的左右子节点,图是递归周围满足条件的点);(3)去重(设置visited或者用其他值标记)
  • 相关阅读:
    【java数据结构】栈和队列
    当用户打开控制台时,禁止操作
    OpenCV函数总结
    git提示:remote origin already exists
    IDEA如何设置项目包名分级
    [设计模式] 浅谈SOLID设计原则
    依赖注入跟::调用方法,哪种好,有什么区别?
    Android绘制的Window和View
    分布式.幂等性
    Flink 环境对象
  • 原文地址:https://blog.csdn.net/qq_43606119/article/details/136341305