Topk问题

100亿个数中找topK个数?方法一:堆如果用堆来解决,直观来说,应该建立大根堆。时间复杂度为O(nlogn)+ O(klogn)。但是正确的做法是建立小根堆,思路如下:首先用k个数建立小根堆,然后用剩下的数一个个与堆顶比较。比堆顶大的就和堆顶交换,再调整。最后剩下来的就是top。时间复杂度:O(n
2024年08月16日 19次浏览

链式前向星(存的是边)

e[idx] = b:表示第 idx 条边通向 b 点w[idx] = c:表示第 idx 条边的权值为 cne[idx] = h[a]:表示以a为起点的第 idx 条边的下一条边为 h[a](-1表示无边)h[a] = idx++:表示点 a 的上一条边为 idx其中 h 数组的大小是点数,其他三
算法 2024年08月09日 26次浏览

利用云服务器+FRP实现内网穿透

想用外部主机连接宿舍笔记本上的WSL2上的虚拟机,于是找到了这个方法,亲测可行~内网穿透工具-FRP接下来,我们就需要利用FRP实现内网穿透。具体操作可分为服务器端和客户端下载FRP服务器端和客户端都需要下载FRP,以Ubuntu系统为例:下载步骤: wget https://github.com/
Linux 2024年07月28日 53次浏览

shell语法补充和理解

((…))对应的是exprexpr需要显示捕获值。expr可用于计算如length等命令的值。而((…))不能,只适用于算数运算。在 Bash 中,((…)) 是内置的算术扩展,用于执行算术运算。它不仅可以用于赋值和计算,还可以直接用于条件判断,而无需显式捕获值。直接使用 ((…)) 的好处简洁:不
2024年06月21日 110次浏览

Linux系统设置杂项

Ubuntu中让 shell 终端只显示当前路径vim ~/.bashrcsoruce ~/.bashrc + 重启终端
Linux 2024年05月02日 154次浏览

腾讯云服务器Kernel升级导致的一系列问题

由于想学习一下ebpf,不知怎么就跑去升级kernel了,想把原来的5.4.0内核升级到6.1。=====> 升级教程结果升级完,docker不能用了,直接无法启动。经过排查发现是没有overlay驱动,于是在kernel编译menuconfig中加入了overlay支持,但是还是不行。(当时
Linux 2024年04月30日 139次浏览

Mac下tmux+vim终端开发环境

mac和windows/Linux中tmux复制操作不同mac中复制到系统粘贴板的方法:按住 Fn,选中目标后松开 Fn,⌘ + C/V 复制粘贴(tmux和vim中均有效)
Linux 2024年04月28日 136次浏览

getline和stringstream

#include <bits/stdc++.h>using namespace std;void solve(){string s;getline(cin, s);stringstream ss(s);string ns;while(ss >> ns) cout <&l
刷题 2024年03月09日 211次浏览

WSL2开发环境及网络配置[最终章]

与duo通信:由于是通过RNDIS协议,所以WSL2在NAT模式下即可,默认就会分配到一个192.168.42.*的IP(duo的ip已经被固定为192.168.42.1)主要网站记录:bridge模式:https://www.cnblogs.com/lic0914/p/17003251.htmlm
Linux 2023年12月01日 753次浏览

WSL2网络代理配置

关闭wsl:wsl --shutdown查看wsl中的系统:wsl -l -v配置WSL2终端配置代理不是127.0.0.1!而是WSL2与宿主机通信的172的那个网段(可以在宿主机中用ipconfig查询),端口号就是CFW的端口7890。注意要关闭windows对WSL的防火墙。Clash fo
Linux 2023年11月29日 224次浏览