刷新
学习笔记:操作分块 / 根号重构

博主头像 感谢校内模拟赛给我强行灌输了这个东西。。。 概述 操作分块 / 根号重构,又名时间轴分块,是一种用于解决多次修改和查询问题的高效算法,这类问题一般的特征: 难以 polylog; 暴力简单; 可以通过处理前面的修改,较快贡献后面的询问; 借鉴序列分块的思想,我们设定一个阈值 \(B\),将连续 \( ...

ABC310E NAND repeatedly 题解

博主头像 https://atcoder.jp/contests/abc310/tasks/abc310_e 一个奇怪的递归式 + \(N \le 10^6\), 试试动态规划 设 \(dp_{i,j}\) 为对于所有 \(1 \le l \le i\) 满足 \(f(l, i)=j\) 的数量, 其中 \( ...

仓储物流业务字段(一)

以下是整理的100个仓储物流数据库常用字段名,分类归纳如下: 基础信息类 仓库编码(warehouse_code) 仓库名称(warehouse_name) 仓库地址(warehouse_address) 仓库类型(warehouse_type) 负责人(manager) 容量(capacity) ...

经典面试题目:二叉树遍历

博主头像 一、 核心定义与性质 二叉树(Binary Tree) 是一种每个节点最多有两个子节点的树形结构。这两个子节点通常被称为左子节点和右子节点。 关键术语: 根节点(Root): 树的顶层节点,没有父节点。 叶子节点(Leaf): 没有子节点的节点。 深度(Depth): 从根节点到该节点所经历的边的个 ...

准备工作之结构体[基于郝斌课程]

博主头像 为什么会出现结构体 为了表示一些复杂的数据,而普通的基本类型变量无法满足要求 什么叫结构体 结构体是用户根据实际需要自己定义的复合数据类型 如何使用结构体 普通结构体变量.成员变量 /* @file main.c @brief 数据结构预备知识之结构体学习 @author EricsT (Erics ...

准备工作之指针与数组[基于郝斌课程]

博主头像 数据结构概述定义:我们如何把现实中大量而复杂的问题以特定的数据类型和特定的存储结构保存到主存储器(内存)中,以及在此基础上为实现某个功能(比如查找某个元素,删除某个元素,对所有元素进行排序)而执行的相应操作,这个相应的操作也叫算法。 数据结构 = 个体 + 个体的关系算法 = 对存储数据的操作 算法 ...

【LeetCode 33】算法:搜索旋转排序数组

博主头像 题目:整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 向左旋转,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ...

【LeetCode 74】算法:搜索二维矩阵

博主头像 题目: 给你一个满足下述两条属性的 m x n 整数矩阵: 每行中的整数从左到右按非严格递增顺序排列。 每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false 。 问题中矩阵的每一行和每一列都是有序的,给定一个 ...

【LeetCode 236】算法:二叉树的最近公共祖先

博主头像 题目:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 核心思路: 要找到给定二叉树中两个指定节点的最 ...

【LeetCode 437】算法:路径总和 III

博主头像 题目:给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。 路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。 核心思想: 这个问题的核心思想是深度优先搜索(DFS) ...

简易BST实现

博主头像 BST,即二叉搜索树,该数据结构规定任意若一个结点存在左子树,那么该结点键必须要大于左子树上所有键;若有右子树,那么该结点键必须要小于右子树上所有键 简单的BST是树形查找里的入门级数据结构,不涉及平衡性调节,只需要简单插入删除,即可,其中删除稍复杂,但是也不难,只需要把三种情况分清即可。简单的BS ...

【LeetCode 114】算法进阶:二叉树展开为链表

博主头像 给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。 展开后的单链表应该与二叉树 先序遍历 顺序相同。 进阶:你可以使用原地算法(O(1) 额外空间)展开这棵树吗? 需 ...

滑动时间窗口和固定时间窗口的区别

博主头像 滑动时间窗口和固定时间窗口是两种常见的限流算法,它们的主要区别在于如何处理时间窗口和请求的计数方式。 一、固定时间窗口算法 1.定义 固定时间窗口算法将时间划分为多个固定长度的窗口,每个窗口内允许通过的请求数量是固定的。例如,每秒允许100个请求通过。 2.工作原理 时间窗口划分:时间被划分为固定长 ...

2 - SAT

博主头像 2 - SAT 定义 2 - SAT 指的是一种问题形式,通常表述为有 n 个集合,每个集合有且仅有两个元素,且集合之间有对应关系。 举个例子,假设有两个集合 \(A = \left \{a, b \right \}\) , \(B = \left \{c, d \right \}\) ,存在对应关 ...

<1234···14>