Datoo's Data Structure and Algorithm Notes

This website is mainly for storing my notes when solving data structure and algorithm problems in LeetCode. If you have some questions, please feel free to ask me or give some advise to me. :D

Basic

This part is mainly for basic data structure.

  1. Array

      No Problem Difficulty
        数组总结  
      1 两数之和 简单
      27 移除元素 简单
      56 合并区间 中等
      167 两数之和 II 简单
      209 长度最小的子数组 中等
      394 字符串解码 中等
      498 对角线遍历 中等
      561 数组拆分 I 简单
      768 最多能完成排序的块 II 困难
  2. Linked List

      No Problem Difficulty
        链表总结  
      剑指 Offer 22 链表中倒数第k个节点 简单
      19 删除链表的倒数第 N 个结点 中等
      24 两两交换链表中的节点 中等
      61 旋转链表 中等
      141 环形链表 简单
      142 环形链表 II 中等
      160 相交链表 简单
  3. Queue

      No Problem Difficulty
        队列总结  
      133 克隆图 中等
      200 岛屿数量 中等
      279 完全平方数 中等
      542 01-矩阵 中等
      622 设计循环队列 中等
      841 钥匙和房间 中等
           
  4. Stack

      No Problem Difficulty
        栈总结  
      94 二叉树的中序遍历 中等
      150 逆波兰表达式求值 中等
      200 岛屿数量 中等
      739 每日温度 中等
  5. Tree

      No Problem Difficulty
        树总结  
      108 将有序数组转换为二叉搜索树 简单
      109 有序链表转换二叉搜索树 中等
      110 平衡二叉树 简单
      1261 在受污染的二叉树中查找元素 中等
      1382 将二叉搜索树变平衡 中等
  6. Trie

      No Problem Difficulty
        前缀树总结  
      208 实现 Trie 中等
      648 单词替换 中等
           
  7. Hashmap

      No Problem Difficulty
        哈希表总结  
      10.02 变位词组 中等
      16.02 单词频率 中等
      1 两数之和 简单
      167 两数之和 II 简单
      954 二倍数对数组 中等
      1261 在受污染的二叉树中查找元素 中等

Medium

This part is mainly for advanced algorithm.

  1. Backtracking

      No Problem Difficulty
        回溯总结  
      131 分割回文串 中等
      133 克隆图 中等
      200 岛屿数量 中等
      面试题 08.04 幂集 中等
           
  2. Graph Searching
    1. BFS

        No Problem Difficulty
          网格搜索总结  
        542 01-矩阵 中等
        752 打开转盘锁 中等
        841 钥匙和房间 中等
    2. DFS

        No Problem Difficulty
          网格搜索总结  
        494 目标和 中等
        841 钥匙和房间 中等
  3. Sort

      No Problem Difficulty
        排序总结  
           
  4. Binary Search

      No Problem Difficulty
        二分搜索总结  
      33 搜索旋转排序数组 中等
      34 在排序数组中查找元素的第一个和最后一个位置 中等
      69 x 的平方根 简单
      162 寻找峰值 中等
      209 长度最小的子数组 中等
      278 第一个错误的版本 简单
      658 找到 K 个最接近的元素 中等
  5. Two Pointers

      No Problem Difficulty
        双指针总结  
      剑指 Offer 22 链表中倒数第k个节点 简单
      19 删除链表的倒数第 N 个结点 中等
      27 移除元素 简单
      131 分割回文串 中等
      141 环形链表 简单
      142 环形链表 II 中等
      160 相交链表 简单
      167 两数之和 II 简单
      209 长度最小的子数组 中等
      344 反转字符串 简单
      485 最大连续 1 的个数 简单
      541 反转字符串 II 简单
      561 数组拆分 I 简单
           
  6. Dynamic Programming

      No Problem Difficulty
        动态规划总结  
      279 完全平方数 中等
      338 比特位计数 中等
           
  7. Union Find

      No Problem Difficulty
        并查集总结  
      1319 连通网络的操作次数 中等
           
  8. Bit Manipulation

      No Problem Difficulty
        位运算总结  
      136 只出现一次的数字 简单
      137 只出现一次的数字 II 中等
      260 只出现一次的数字 III 中等
      338 比特位计数 中等
      面试题 08.04 幂集 中等

Series

This part is mainly for some relevant problems. Maybe you have seen them in previous chapter, maybe not.

  1. Numbers of Islands

    岛屿数量:题目

    Solution Link
    BFS + 队列 岛屿数量
    DFS + 递归 岛屿数量
    DFS + 栈 岛屿数量
  2. Reversed Linked List

    反转链表

  3. Traversal for Tree

    树的遍历

  4. Backpack question

    背包问题

  5. Single Number

    只出现一次的数字

      No Problem Difficulty
      136 只出现一次的数字 I 简单
      137 只出现一次的数字 II 中等
      260 只出现一次的数字 III 中等