Skip to content

Latest commit

 

History

History
88 lines (70 loc) · 8.96 KB

File metadata and controls

88 lines (70 loc) · 8.96 KB

EASY

个人认为middle和hard级别的题目可以拆解成若干个easy的题,因此,数量掌握easy和基础知识点对coding的深入化非常有益!

C++Background参考:C++ STL 《C++ Primer Plus》

数据结构与算法参考:《算法》第四版

coding参考:《剑指offer》第2版

July

Category Date python&&C++
singly-linked list 7.1 链表相交
7.2 返回倒数第k个节点
7.3 删除链表中的节点
7.4 回文链表
7.5 删除排序链表中的重复元素
7.6 合并两个有序链表
7.7 相交链表
7.8 二进制链表转整数
7.9 反转链表
7.10 移除重复节点
7.11 链表的重复节点
7.12 移出链表元素
7.13 删除链表节点
7.14 环形链表
7.15 链表中倒数第k个节点

singly-linked list: 总体思路是旅行家理论:将链表比作旅行,该过程由起始点,路和旅行者组成,链表的头结点相当于起始点,每个节点相当于驿站,节点的next表示下一个旅行方向,旅行前会从起始点派出一位旅行家,该过程可由h = head表示;旅行家的旅行方向由next表示,即 h.next=newh;更新旅行家的位置则由h = h.next表示! 旅行家的终点是None或者在旅行中转圈圈!问题点关键是根据有限条件确定找到旅行方向,即对h.next如何赋值!

注意点是1、边界条件,否则容易出现死循环或者None.next的问题!

​ 2、根据题目判断返回的是旅行家的位置还是整个旅行过程,旅行过程可用起始点指代!

技巧:哨兵(Sentinel),可用于伪头

​ 哨兵节点广泛应用于树和链表中,如伪头、伪尾、标记等,它们是纯功能的,通常不保存任何数据, ## 其主要目的是使链表标准化,如使链表永不为空、永不无头、简化插入和删除

Category Date python&&C++ core code&& tags
tree 7.16 检查平衡性 递归,深度优先搜索
7.17 对称二叉树
7.18 N叉树的后序遍历 递归和迭代
7.19 二叉搜索树最近公共祖先 递归和迭代
7.20 二叉树的最大深度 递归和迭代
8.3 N叉树的前序遍历 递归
Category Date python&&C++ core code&& tags
vector 7.21 0~n-1中缺失的数字 (递增排序)二分法+边界条件
7.22 最长连续递增子数组 二分法
7.23 搜索插入位置 二分法,退出循环条件
7.24 子数组最大平均数 滑动窗法
7.25 数组的度 unordered map 最值嵌套
7.26 缀点成线 double类型比较,分母为0讨论
7.27 可以被一次捕获的棋子数 方向数组
7.28 统计好三元组 枚举优化
7.29 和为0的N个唯一整数 奇偶数讨论
7.30 多数元素 哈希表 排序 随机化 分治 Boyer-Moore 投票算法
7.31 等价多米诺骨牌对的数量
8.1 移除元素 删除数组或列表时,当前下标的元素变成了下一个元素!
8.2 两个数组的交集 II hashmap,sort+double pointer