algorithm-difference-array
差分数组
1234a[0] a[1] a[2] a[3] a[4] (0)差分数组: a[0] a[1]-a[0] a[2]-a[1] a[3]-a[2] a[4]-a[3] (-a[4])对差分数组求前缀和: a[0] a[1] a[2] a[3] a[4] (0)// 考虑末尾0(-a[4]),那么差分数组之和sum=0
前缀和就是离散版本的“求积分”,差分数组就是离散版本的“求微分”
形成目标数组的子数组最少增加次数
给你一个整数数组 target 和一个数组 initial ,initial 数组与 target 数组有同样的维度,且一开始全部为 0 。
请你返回从 initial 得到 target 的最少操作次数,每次操作需遵循以下规则:
在 initial 中选择 任意 子数组,并将子数组中每个元素增加 1 。
答案保证在 32 位有符号整数以内。
示例 1:
1234567输入:target = [1,2,3,2,1]输出:3解释:我们需要至少 3 次操作从 intial 数组得到 target 数组。[0,0,0,0,0] 将下标为 0 到 4 的元素(包 ...
algorithm-presum
前缀和
前缀和是一种数组变换方法,通过将数组中每个元素替换为从数组起始位置到当前位置的所有元素之和。这样,计算任意区间的和变得非常高效,只需一次前缀和计算即可,而不需要多次重复计算。
123int[] nums;int n = nums.length, sum[] = new int[n+1];sum[i+1] = sum[i] + nums[i];
需要用sum[0]表示空数组的和
l到r的区间和表示为 sum[r+1] - sum[l]
例如,nums[0]到nums[5]的区间和表示为 sum[6] - sum[0]
二维前缀和
定义sum[i+1][j+1]表示左上角grid[0][0],右下角grid[i][j]的子矩阵元素和
123456int[][] sum = new int[m + 1][n + 1];for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { sum[i + 1][j + 1] = sum[i + 1][j] + sum[i][j + 1] ...
algorithm-monotonic-stack
单调栈
单调栈(Monotonic Stack)是一种特殊的栈,它首先是一个栈,从栈顶添加和删除元素,其次栈中的所有元素单调递增或者单调递减
在一个队列Deque中,我们offer右边,poll左边,这样左边就是队首,右边是队尾
如果这个Deque作为栈,我们push和pop左边,并且把左边作为栈顶
单调性的判断是从栈顶到栈底(Deque中从左往右看)
单增栈:栈顶到栈底的元素是单调递增的,即栈顶的元素最小
单减栈:栈顶到栈底的元素是单调递减的,即栈顶的元素最大
后上界:对于数组中的某个元素 a[i],它的后上界是指在它之后的第一个比它大的元素
后下界:对于数组中的某个元素 a[i],它的后下界是指在它之后的第一个比它小的元素
单调栈在算法中的应用在于它能够在一次扫描(从左到右)即O(n)的复杂度之内找到数组中每一个元素的后上界(单增栈)或者后下界(单减栈)
496. 下一个更大元素 II: 递增栈获得每个元素的后上界
2866. 美丽塔 II(2072)
1944. 队列中可以看到的人数(2105)
2454. 下一个更大元素 IV(2175):双单调栈
...
solution-blog-memos-backup-by-github-actions
用GitHub Actions实现memos备份
正文
我的memos是在replit提供的免费服务器上部署的,数据也保存在这个服务器上,我怕哪天上面的数据没了,所以写了个GitHub Actions备份脚本
可以新建一个GitHub仓库,并开启Actions的读写权限:仓库的Settings-Actions-General-Workflow permissions-选择Read and write permissions
在.github\workflows\main.yml中:
12345678910111213141516171819202122232425262728293031323334name: Backup Memoson: schedule: - cron: "0 */4 * * *" # 每隔4小时执行一次 workflow_dispatch:jobs: backup: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/ ...
note-exam-nku-computer-network
计网复习记录
2023南开大学研究生计算机网络考试【专硕】
今年提示
计网考试。5道选择,送分的。五道大题,有些小题,没有复杂计算,基础的东西
tcp bgp ip 机制改进,说明理由 qs 没有定义类型问题,以理解为主,不用背
课程ppt知识点
综述
Internet设计原则
能连接到现有网络
无状态网络(只在终端有状态)
基于tcp或者udp
多种多样的网络
无线网络
局域网(LAN):
范围: 局域网是在相对较小的地理范围内建立的网络,例如办公楼、校园或单个建筑物。
连接设备: 通常连接的设备数量较少,如个人电脑、打印机、服务器等。
传输速度: 由于范围较小,局域网通常具有高速的数据传输速度。
WLAN(Wireless Local Area Network)是局域网的一种类型
IEEE802.11:IEEE 802.11 是一组无线局域网(Wireless LAN)通信标准,广泛用于Wi-Fi网络。它支持不同频段和速率,包括2.4GHz和5GHz,常见于家庭、企业和公共场所的无线网络。
城域网(MAN):
范围: 城域网覆盖的范围介于局域网和广域网 ...
solution-blog-loading-animation-love-death-robots
Love, Death & Robots加载动画
首先,在这个令人开心的时刻,让我们先感谢这个动画的css作者
加载动画预览也看那个作者链接吧,差不多,只是把颜色改了改
要做什么
butterfly版本:4.10
添加加载动画的两种文件:pug和styl,分别对应html和css文件
在主题中添加加载动画的入口
pug资源目录:themes/butterfly/layout/includes/loading/load_style
styl资源目录:themes/butterfly/source/css/_load_style
pug的配置入口位置:themes/butterfly/layout/includes/loading/fullpage-loading.pug
styl的配置入口位置:themes/butterfly/source/css/_layout/loading.styl
如果觉得上面东西很陌生的话,建议先看看前辈的自定义加载动画博客
开始操作
新建文件:themes/butterfly/layout/includes/loading/load_styl ...
note-design
记录一些好看的图标和颜色
图标
FontAwesome
123456789101112131415fa-solid fa-mug-saucer # 杯子fa-solid fa-heartbeat # 心脏fa-solid fa-circle-nodes # 三角形的图fa-solid fa-tree # 树 fa-solid fa-wand-magic-sparkles # 魔法笔fa-solid fa-pencil # 铅笔fa-solid fa-list # 列表fa-solid fa-code # 代码fa-brands fa-codepen # codepen图标fa-solid fa-bug # bugfa-solid fa-tags # 标签fa-solid fa-folder-open # 分类fa-solid fa-archive # 归档fas fa-link # 链接
即用图标
12📺 电影📚 书籍
Favicon
favicon网站
根据图片生成图标
根据文字生成图标
图片
封面
https://coverview. ...
solution-train-two-model-simultaneously
同时训练两个模型遇到了bug,记录今天由这个bug引发一系列bug的过程
使用resnet18进行图像分类
1234567model_ft = models.resnet18(pretrained=True)num_ftrs = model_ft.fc.in_featuresmodel_ft.fc = nn.Linear(num_ftrs, len(class_names))model_ft = model_ft.to(device)cross_entropy_loss = nn.CrossEntropyLoss()optimizer_ft = optim.SGD(model_ft.parameters(), lr=1e-3, momentum=0.9)exp_lr_scheduler = lr_scheduler.StepLR(optimizer_ft, step_size=5, gamma=0.1)
单独训练这个模型在我的数据集的正确率在0.96左右
需求:同时跑两个一样模型
于是我定义了一个函数,使用deepcopy复制得到全新的模型,并且在train函数中同时跑这两个模型
12 ...
algorithm-series-2d-partial-order
二维偏序
概念
偏序关系满足:
反自反性(Reflexivity): 对于集合中的每个元素,关系都与自身存在。
反对称性(Antisymmetry): 如果存在a<=b && b<=a,则必须是a==b
传递性(Transitivity): 如果存在a<=b && b<=c,则必须是a<=c
二维偏序问题涉及对一个二维数据集中元素的排序,其中排序不仅仅依赖于元素自身的大小关系,还可能依赖于元素在不同维度上的关系。
二维偏序是这样一类问题:已知点对的序列(a1,b1), (a2,b2), (a3,b3)...,
并在其上定义某种偏序关系<,现有点(ai,bi),求满足(aj,bj) < (ai,bi)的的数量。
二维偏序问题一般是要使其中的一个维度有序,再通过树状数组的方式处理另一个维度
翻转对
给定一个数组 nums ,如果 i < j 且 nums[i] > 2*nums[j] 我们就将 (i, j) 称作一个重要翻转对。
你需要返回给定数组中的重要翻转对的数量。
示例 1:
12输入: ...
solution-github-chinese-character-encoding-issue
Github克隆仓库出现中文乱码问题
最近在使用自己的Github仓库时,发现clone下来的仓库中,有个文件里的中文乱码了
文件内容如下:
1234;------------ Encoding: UTF-16 ------------;请对照 CapsLock+settingsDemo.ini 来配置相关设置(乱码显示)[Global]...
第一眼的想法是,Github服务器和本地Windows环境不一致导致的,于是我把UTF-16修改成了UTF-8
12;------------ Encoding: UTF-8 ------------...
提交测试后,发现还是不行
后来顿悟了,我应该在本地把文件的格式改成UTF-8,而不是修改里面代码的Encoding(笑哭)
比如,我这里用notepad++,打开文件后直接在左上角编码-使用UTF-8编码-保存,就好了
此时,再上传到Github,clone下来测试,没问题