XOR
300.最长递增子序列
问题描述 300.最长递增子序列 本题简写为LIS问题,与LCS问题(最长公共子序列)相对。 解题思路 动态规划 关键在于,dp[i]表示什么含义便于解这道题,子序列不一定连续,所以为了便于求解,dp[i]应该表示为以nums[i - 1]结尾的最长严格递增子序列的长度; 递推关系为: if (nu ......
关于laravel链接sqlserver使用WITH(NOLOCK)优雅一点的解决办法
2023年6月13日15:19:16 ### NOLOCK使用场景 ``` 针对那些被频繁操作(插入、更新、删除)的表,使用NOLOCK是非常比较适合的,但要考虑到脏读的情况。 不经常修改的数据表,省掉锁定表的时间来大大加快查询速度。 数据量非常大的数据表,可以考虑牺牲数据安全性来提升查询的效率; ......
案例1:路由交换无冗余线路设计1
JR-SW1: undo terminal monitor system-view sysname JR-SW1 user-interface con 0 idle-timeout 0 0 quit undo info-center enable vlan batch 11 to 12 100 20 ......
免费onedns拦截网站
https://onedns.net/ 可以自定义拦截网站,白名单, 有客户端防止用户修改DNS,导致拦截失败 有专用客户端动态根据ip变化而拦截 目前公益版支持800个用户,有10年使用时间 个人家庭使用是很好,企业使用限制比较多,需要购买一些功能模块 ......
「学习笔记」严格次短路
出题人说:“有最短路,还要有次短路。” 于是,就有了次短路这个东西。 与次小生成树一样,目前不知道有啥用。 **本文求的是严格次短路!** ## 变量 `n`:点数; `m`:边数; `e`:`vector` 存图; `dis1`:储存最短路; `dis2`:储存次短路。 ## 过程 我们要利用 d ......
CPU 缓存一致性:MESI
概述 MESI(也称伊利诺斯协议)是一种广泛使用的支持 write-back 策略的缓存一致性协议。 MESI 状态 我们假设 CPU 中共有 $k$ 个核; CPU 中每个 cacheline 使用 $4$ 种状态进行标记: 状态 介绍 所有核中该状态的个数 MODIFIED 实际上是 exclu ......
跳表
跳表介绍 跳表是一种数据结构,使得包含 $n$ 个元素的有序序列的查找和插入操作的平均时间复杂度都是 $O(\log n)$,与红黑树、AVL 性能类似。 跳表的快速查询效果是通过维护一个多层次的链表实现的,且与前一层(下面一层)的链表元素相比,每一层链表中的元素的数量更少,一开始,算法在最上层(也 ......
数位 DP
引入 数位是指把一个数字按照个、十、百、千、万等等一位一位地拆开,关注它每一位上的数字。如果拆的是十进制数,那么每一位数字都是 $0\sim 9$。 数位 DP 一般是用来解决一类特定问题,以 1012. Numbers With Repeated Digits (Hard) 为例,这一类问题的特征 ......
二分答案
概述 二分答案即利用二分查找来得到答案,一般情况下,左边界 $left$ 是 $0$ 或者 $1$;右边界 $right$ 则视题目条件而定,取一个很大的数,然后利用二分查找的思想,来找到答案。 二分答案的要求 如果题目能够使用二分答案的思想来解决,那么 $[left, right]$ 范围内,要满 ......
LRU 算法与 LFU 算法
算法介绍 LRU LRU 全称是 Least Recently Used,即最近最久未使用算法。 LRU 根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高,它是页面置换算法的一种,也常用于缓存设计。 LFU LFU 全称是 Least Freque ......
C++ 虚函数与动态绑定
多态与动态绑定 为了实现 C++ 的多态,C++ 使用了动态绑定技术,该技术的核心是虚函数表(简称虚表)。 类的虚函数表 每个包含了虚函数的类都包含一个虚表,一个子类如果继承了包含虚函数的父类,那么这个类也拥有自己的虚表,例如 class A { public: virtual void vfunc ......
kmp算法
问题描述 kmp算法解决的是字符串匹配问题,即:字符串P是否是字符串S的子串?如果是,它出现在s的哪些位置?这里我们称 S 为主串,P 为模式串。 思路 首先是暴力匹配算法(Brute-Force算法),代码如下: void BruteForce(string s, string p) { int ......
快速选择算法
问题描述 给定一个长度为$n$的数组,如何在$O(n)$的时间复杂度内找到第$k$大的数。 思路 朴素的想法是先排序,然后直接找到第$k$个元素,时间复杂度为$O(n\log n)$。 我们可以利用快速排序的思想来解决这个问题,考虑快速排序的划分过程,在快速排序的“划分”结束后,数组$A_p \cd ......
字符串哈希算法
问题描述 考虑 1044. 最长重复子串 (Hard),本题思路并不难,可以使用二分答案来解决,假设答案为 mid,那么长度大于 mid 的子串在 s 中只会出现一次,否则至少出现两次。 因此只需要考虑子串在 s 中的出现次数即可,比较直接的想法是使用 key 为 string 的 unordere ......
字典树
定义 字典树(Trie),是一个像字典一样的树,又称前缀树。 可以高效的查询某个字符串是否在一组给定的字符串中,或者说查询某个单词是否在字典中。 字典树的查询时间复杂度可以认为是 $O(l)$,其中 $l$ 为待查询单词的长度。 引入 字典树示意图: 可以发现,这棵字典树用边来代表字母,而根结点到树 ......
拓扑排序
定义 拓扑排序(Topological sorting)要解决的问题是给一个有向图的所有节点排序。 这里直接使用OI-Wiki中举的例子来说明: 我们可以拿大学选课的例子来描述这个过程,比如学习大学课程中有:单变量微积分,线性代数,离散数学概述,概率论与统计学概述,语言基础,算法导论,机器学习。当我 ......
Leetcode常见报错的原因分析
问题1 问题描述 Line 522: Char 69: runtime error: applying non-zero offset 18446744073709551615 to null pointer (basic_string.h) 报错原因 string res = 0 报错分析 这里报 ......
二进制下的补码、反码、原码——适用于有符号整数
简单定义 简单起见,我们这里只考虑三位二进制数所能表示的范围,即${-4, -3, -2, -1, 0,\ 1,\ 2,\ 3}$。 机器数和真值 一个数在计算机中的二进制表现形式,就是这个数的机器数(相当于数的原码)。 例如,$-3$ 的机器数即为 $111$,$2$ 的机器数为 $010$。 机 ......
从汇编的角度理解 C/Cpp 的函数调用过程
代码 测试代码内容如下,定义了一个 add 函数,用来求两个函数的和。 int add(int a, int b) { return a + b; } int sum(int a, int b) { return 10 + add(a, b); } int main() { int res = su ......
位运算
异或(XOR) /Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.macos64_1.0.10 ......
C语言-观察者模式
点击查看代码 ``` #include #define MAX_OBSERVERS 10 typedef struct Observer{ int Oberver_value; void (*update)(struct Observer *observer, int value); }Observ ......
BigDecimal
一、BigDecimal概述 Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数,但在实际应用中,可能需要对更大或者更小的数进行运算和处理。一般情况下,对于那些不需要准确计算精度的数字,我 ......
javascript反编译工具javascript-obfuscator的环境搭建
javascript-obfuscator的项目和文档地址:https://github.com/javascript-obfuscator/javascript-obfuscator # windows端 ## 安装nodejs环境 打开nodejs安装包,一直点NEXT,默认设置安装即可。安装后 ......
Prometheus 监控
Prometheus最开始设计是一个面向云原生应用程序的开源的监控&报警工具,在对 Kubernetes服务发现协议分析之前,我们先来梳理下 Prometheus 如何接入云原生,实现对 Kubernetes 集群进行监控。 Kubernetes 云原生集群监控主要涉及到如下三类指标:node 物理 ......
云服务器用堡塔发布部署
把从API右键发布复制路径,然后从堡塔下方SFTP文件管理上传目录粘贴路径,上传public然后执行下面操作 1、使用宝塔远程工具 用Linux命令 mkdir创建一个文件夹(名字最好是小写字母可以有数字) 2、ls查看文件夹文件 cd进入文件 cd ..返回上级 3、ifconfig 查看服务器端 ......
CountDownLatch_demo
参考: https://zhuanlan.zhihu.com/p/95835099 https://www.cnblogs.com/blogtech/p/16270225.html https://www.cnblogs.com/dafanjoy/p/9729358.html Service.jav ......
JavaScript的变量
JavaScript中的变量没有数值类型的声明,并且,JavaScript的变量本身就包含了变量类型和变量值两个属性。 给变量赋值为undefined,或者不给变量赋值(未初始化),就意味着这个变量没有值(也没有数据类型)。 给变量赋值为null,也不知道意味着啥,只不过在typeof运算符的结果是 ......
javascript WebUploader 分片上传
我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用。 首先我们需要了解的是上传文件三要素: 1.表单提交方式:post (get方式提交有大小限制,post没有) 2.表单的enctype属性:必须设置为multipart/form-da ......
mysql mariadb修改端口后启动失败
 修改端口号启动失败 关闭SETLinux 临时关闭,不需要重启电脑,重启后失效 执行命令:setenforce 0 ......
core dump 路径定义以及监控
## Core Dump 是什么? Core Dump 是指进程异常退出时,操作系统将进程的内存状态保存到文件中,这个文件就是 Core Dump 文件,中文一般翻译为“核心转储”,哈,看起来还不如不翻译。 我们可以认为 Core Dump 是“内存快照”,但实际上,除了内存信息之外,还有些关键的程 ......