MENU

寒夜雨

汀苇乱摇寒夜雨,沙鸥闲弄夕阳天。

【算法】滑窗算法

前言

滑窗算法常用于序列的连续子序列的处理。通过两个指针维护一个窗口,通过一些逻辑对这个窗口——亦即一个连续的子序列——进行处理。

阅读全文

【算法】链表

前言

链表是一个不常使用在日常软件开发中的数据结构,但是,却经常会被用于出算法题,这是因为,链表的两个元素之间是通过next指针相连,如果没有维护好这个指针信息,就会导致无法访问到某一元素。

阅读全文

【算法】双指针

前言

双指针是一种用于解决区间问题的算法,这类算法通常的复杂度都是$\Theta(n)$。其实,我们可以将二分看作一种特殊的双指针,每次筛选掉一半的数据。同样的,双指针也可以看作一种特殊的二分,只不过每次通常筛选掉一个数据。

阅读全文

【算法】二分法

前言

分治法的通用步骤是:划分-求解-合并。将一个比较大的问题拆分成若干小问题,然后分别求解。分治法和动态规划的区别在于,分治法通常求解子问题之间彼此独立的场景,而动态规划用于求解子问题之间不独立的场景。这一区别将在动态规划一节中阐述。

阅读全文