随笔分类 - 算法 + 刷题
摘要:LRU:最近最少使用缓存 LRU是Least Recently Used的缩写,即最近最少使用,是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰。该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间 t,当须淘汰一个页面时,选择现有页面中其 t 值最大的,即最近最少
阅读全文
摘要:删除链表结点 NO1. 删除链表倒数第 k个结点 给定一个链表,删除链表的倒数第 n 个节点并返回链表的头指针。要求:空间复杂度 $O(1)$,时间复杂度 $O(n)$ 如果倒数第 k 个结点刚好是头结点,那头结点需要特殊处理。为了各个结点能等同操作,设置一个虚拟头结点。 寻找倒数第 k 个结点常使
阅读全文
摘要:反转链表类 NO1. 反转链表 给定一个长度为 n 的链表,反转该链表,输出表头。 方法一:迭代法(推荐使用) 算法流程: step 1 :特殊情况判断,空链表或只有一个结点的链表,直接返回头结点; step 2 :设置两个指针cur和prev,cur指向当前结点,prev指向上一个结点(初始为 n
阅读全文
摘要:背包问题笔记 2. 01背包问题 有 $N$ 件物品和一个容量是 $V$ 的背包。每件物品只能使用一次。 第 $i$ 件物品的体积是 $v_i$,价值是 $w_i$。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。 输入: 4 5 (第一行两个整数,N,V,
阅读全文
摘要:差分数组 什么是差分数组? 差分数组:差分数组就是原始数组相邻元素之间的差。 其实差分数组是一个辅助数组,从侧面来表示给定某一数组的变化,一般用来对数组进行区间修改的操作。 比如说对于上文的数组,将区间【1,4】的数值全部加上3,其实当原始数组中元素同时加上或者减掉某个数,那么他们的差分数组其实是不
阅读全文
摘要:牛客网的ACM模式需要自己写输入输出,在这里简单记录一下: 基本答题框架: import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.i
阅读全文
摘要:专题:二叉树遍历 987. 二叉树的垂序遍历 给你二叉树的根结点 root ,请你设计算法计算二叉树的 垂序遍历 序列。 对位于 (row, col) 的每个结点而言,其左右子结点分别位于 (row + 1, col - 1) 和 (row + 1, col + 1) 。树的根结点位于 (0, 0)
阅读全文