自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 golang堆模板

在Golang的container/heap包下面有堆的接口,只需要实现接口即可简单的实现二叉堆。golang的堆数据结构需要自己重写操作逻辑。

2023-12-23 14:47:53 358

原创 ubuntu网络运维杂记

ubuntu网卡配置文件有两个,启动命令是有所不同的,这里个人推荐使用方法二,比较简单,并且只有Ubuntu系统才会有,两种方法介绍如下:因为Ubuntu18.04+采用的是netplan来管理network。cd /etc/netpla n 系统里默认已经创建好一个yaml文件,如:50-cloud-init.yaml。下面我们给ens33这个网卡创建一个静态ip,如下:最后使用sudo netplan apply来重启网络服务就可以了。使用ip a查看你的静态IP是否设置成功了!之前碰到一个网卡启动后

2023-11-12 13:50:11 264

转载 数位dp(参照力扣灵神)

数位dp讲解 & 模板

2023-06-05 16:04:12 532

转载 开发杂项(长期更新)

跨域问题解决方案——CORS

2022-06-15 11:22:45 130

原创 Dijkstra函数模板(c++)

Dijkstra函数模板(c++)

2022-05-06 20:11:34 616

原创 多个python环境如何装包?

如果一个电脑有多个python环境,比如python2.7、python3.6、python3.8大杂烩怎么装包?法一pip指定安装目录首先查看下想装的python版本的package路径python3.8 -m site然后pip -t装到指定的地方pip install -t /usr/lib/python3/dist-packages numpy法二更简单粗暴的方法,指定版本:pythonx.x -m pip install xxxpython3.8 -m pip install

2022-05-06 12:07:17 1252

转载 计算机网络——阻塞IO、非阻塞IO、IO多路复用

1 简介  网络IO模型有5种:阻塞IO、非阻塞IO、IO多路复用、信号驱动IO、异步IO  本文仅对阻塞IO、非阻塞IO、IO多路复用进行讲解  在网络通信中,对数据进行收发在发送端和接收端的相应设备上会进行如下顺序的传递:  发送端应用的发送缓冲区->发送端操作系统的内核缓冲区->发送端网卡->网线->接收端网卡->接收端操作系统的内核缓冲区->接收端应用的接收缓冲区  对数据进行写入时,应用程序调用write/sendto等相关系统调用将数据发送到接收端的

2022-01-18 21:49:57 3939

原创 字符串哈希(模板)

字符串匹配可以用KMP算法来做,但是KMP实在是太恶心了,对子字符串进行哈希找出子字符串,可以用哈希+滑动窗口的方法但每次求一个子字符串的哈希的复杂度都是O(N),比较慢。我们可以利用JDK对字符串的哈希原理,也就是KR算法,模板和介绍如下。187. 重复的DNA序列#define ull unsigned long longclass Solution {public: string get(string &str, int len){ int n = str.si

2021-12-24 10:48:02 651

原创 docker网段冲突问题

最近在实验室内网(校园网内网中的内网)配置服务器的时候发现自从服务器配置了docker后,校园网无法访问内部服务的问题,一直无法解决,最近才恍然大悟,填下坑。校园网的网段是172.17.0.0/16,实验室网段是192.168.3.0/24,而实验室服务器docker默认创建的docker0虚拟网卡的网段172.17.0.1/24,跟校园网冲突了。总结的解决方式有两种:方法一把docker0网卡关闭了ifconfig docker0 down但有个缺点就是docker下次重启的时候,docker

2021-12-14 22:26:14 3441 1

原创 frida使用总结(持续更新)

最近在学习frida的使用,写个文档记录下…frida常用方法总结目录1 常用命令1.1 启动app1.1.1 setImmediate1.1.2 setTimeout1.1.3 frida命令启动app1.1.4 python脚本启动1.2 查看模拟器所有进程1.2.1 查看当前进程1.2.2 搜索指定进程1.3 查看当前的top activitivy2 frida基础2.1 frida的main函数2.2 查找指定类的实例2.3 查看虚拟机是否启动2.4 注册一个自定义的类2.5 类操作2.5.1 获

2021-11-23 10:09:00 2070 2

原创 在最大中求最小系列问题(二分)

力扣:5920. 分配给商店的最多商品的最小值875. 爱吃香蕉的珂珂dalao的解析我的代码:class Solution {public: int minimizedMaximum(int n, vector<int>& quantities) { int l = 0, r = *max_element(quantities.begin(), quantities.end()); while(l<r){

2021-11-07 16:21:17 72

转载 不用乘号除号,算乘法除法

代码出处:解析不用乘号算乘法倍增乘法:long mul(long a, long k) { long ans = 0; while (k > 0) { if ((k & 1) == 1) ans += a; k >>= 1; a += a; } return ans;}不用除号算除法例题:力扣:29两数相除利用二分+倍增乘法class Solution { int INF =

2021-10-12 23:30:12 213

转载 力扣5866. 数组的最大公因数排序

原题:5866. 数组的最大公因数排序**1.题意为任意两个数的公因数大于1,那么这两个数可以交换。由此可知如果a和b可交换,b和c可交换,那么a,b,c三者可以任意改变顺序,不难想到用并查集把所有公因数大于1的两个数合并。2.如果用两层循环来判断来合并任意两个数,此时必然会超时。因此考虑将每个数和自己的所有质因子进行合并,如15和质因子3,5进行合并,21和质因子3,7合并,这样保证了21和15在同一个集合中。这样对于每个数仅仅需要分解质因子的时间复杂度,远远低于两层循环所需的时间复杂度。注:为了降低

2021-09-06 12:07:13 211

原创 力扣5865. 访问完所有房间的第一天

这是2021-9-5的一道周赛题,当时以为是要用差分数组,但是发现这么做复杂度太高了,并且容易写错,看了题解的dalao才恍然大悟,就是一道普通但很难想到的dp(自己tcl /(ㄒoㄒ)/~~) 原题:[5865. 访问完所有房间的第一天](https://leetcode-cn.com/problems/first-day-where-you-have-been-in-all-the-rooms/)解释在注释// dp[i]代表可以离开i的总天数的和, 下文dp的下标从1开始// 主要分两种情况

2021-09-06 10:35:31 103

原创 go并发

最近在写go的多并法操作,写个笔记文章目录前言一、进程 VS 线程 VS 协程 VS goroutine1.1、多进程 或者 多进程的弊端1.2、协程 与其弊端1.4、goroutine1.5、goroutine实现原理二、goroutine的使用与并法2.1 基本使用2.1.1 匿名函数(无参)2.1.2 匿名函数(带参)2.1.2 实名函数(无参)2.1.2 实名函数(带参)3 goroutine并发(未完持续)3.1 互斥锁(mutex)3.2 管道(channel)3.3 WaitGroup3.

2021-05-18 10:35:58 110

原创 tendis安装教程 与 redis VS tendis(持续更新)

前言tendis是腾讯互娱根据redis改写的一个磁盘存储nosql简单一句话总结redis和tendis就是,redis是存在内存,tendis存在磁盘,其他的啥操作、一致性协议那些基本一样关于redis的安装配置网上一堆,不写了tendis安装教程github链接:https://github.com/Tencent/Tendis切换gcc版本tendis目前我还没找到有可用的软件元可以直接yum,只好乖乖地编译源码了编译配置需要g++ (required by c++17, ve

2021-05-09 12:12:46 3045

原创 力扣31题与5749变式(下一个最大的排列)

力扣31法1:从倒数第二个数开始查找,一直找到比下一个数要小的数的下标,假设为i,然后翻转i+1到n-1(n=arr.size())的所有数,接着有两种情况:1、i==1:直接结束函数2、利用二分法(C++有upper_bound)找到第一个大于arr[i]的数,然后互相交换。代码:class Solution {public: void re(vector<int> &nums, int l, int r){ if(l>=r) retur

2021-05-02 21:00:37 134

原创 图论--SPFA算法(单源最短路)

已经有比较好的博文来解释了,我就不重复造车轮了(懒~)链接:SPFA 算法详解(最短路径)例题:最优贸易 注意:这题不能用迪杰斯特拉,有的OJ数据比较垃圾而已!我的个人总结是,这个算法主要用在计算权值最大的路径,跟传统的迪杰斯特拉算法的最大不同点是,在每一步选择下一个开始遍历的点是用优先队列,而不是从头开始遍历查找,并且不是每个点遍历过就完事了,还要继续往下找。...

2021-03-05 13:52:12 79

原创 倍增求LCA

参考:倍增求LCA#include <iostream>#include <cstdlib>#include <vector>#include <queue>using namespace std;#define SIZE 500005struct edge{ int to; int next;}edges[SIZE<<1];int head[SIZE];int depth[SIZE];int fathe

2021-03-01 13:58:15 113

原创 关于prim算法和Kruskal算法

例题:力扣1584. 连接所有点的最小费用两个都是最小生成树的算法,但需要根据具体的情况来进行调用Prim算法根据边来构建,比如有n个点,就会有n*(n-1)/2条边,将所有边排序,然后利用并查集将所有边加入到树,复杂度为O(n2+n2log(n2))=O(n2log(n2)),复杂度太大了,仅仅适用于边比较少的情况Kruskal利用点来构建,如果所有点都可以相连的情况下,复杂度为O(n2)因此在建立最小生成树时,如果所有点都可以相连用Kruskal,否则用Prim比较好!!!...

2021-01-19 21:43:24 214

原创 单点与区间的更新与查询(模板)

单点与区间的更新与查询

2021-01-16 15:07:38 496

转载 感觉描述线程调度为什么比进程调度更少开销最好的博客(转载)

转载自:线程调度为什么比进程调度更少开销?线程调度为什么比进程调度更少开销?线程调度为什么比进程调度更少开销?#在对比进程调度与线程调度的开销前,我们需要明白两点:进程与线程的差异任务调度的开销进程与线程的差异#我们首先要明白,线程和进程有什么关系?从概念上来讲,线程是进程的一部分,只是任务调度相关的部分,所以我们才说,“线程是调度的最小单位”。进程拥有着资源,这些资源不属于某一个特定线程,因为所有线程共享进程拥有的资源,所以我们才说,“进程是资源分配的最小单位”。需要特别说明的是,Linux

2020-12-14 11:45:37 145

转载 图论——tarjan算法

参考:有向图强连通分量对应力扣查找集群内的「关键连接」参考中的tarjan算法的C++程序void tarjan(int i){ int j; DFN[i]=LOW[i]=++Dindex; instack[i]=true; Stap[++Stop]=i; for (edge *e=V[i];e;e=e->next) { j=e->t; if (!DFN[j]) { tarjan(j); if (LOW[j]<LOW[i]) LOW[i]

2020-11-12 13:25:12 123

原创 线段树&树状数组代码模板

参考:线段树介绍静态线段树假设大小为n,则至少需要申请大小为4*n的数组,对应力扣:通过指令创建有序数组,代码模板:class SegTree{ int n; int[] arr; SegTree(int n){ this.n = n; this.arr = new int[4*n]; } public void update(int x){ update(1,1,n,x); } public in

2020-11-12 13:10:48 222 1

原创 KMP模板

class Solution { public int strStr(String haystack, String needle) { if(needle.length()==0) return 0; int []next = getNext(needle); return KMP(haystack, needle, next); } public int KMP(String s, String p, int[] next){

2020-10-13 12:54:41 55

原创 并查集模板(C++)

下面的并查集模板以下标从1开始(下标为0可对应做出修改)例题:力扣:1579class UFD{public: int count = 0; vector<int> father; UFD(int count):count(count){ father = vector<int>(count+1, 0); for(int i=0; i<father.size(); i++) father[i]=i; }

2020-09-22 19:09:47 149

转载 2020年秋招后端面经

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/xianlvfan2224/article/details/102722298

2020-08-26 19:49:44 124

原创 力扣69:二分求 x 的平方根

力扣69:二分求 x 的平方根链接: https://leetcode-cn.com/problems/sqrtx/.原题:实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。主要问题:1、二分普遍头疼之处,超出时间限制2、这里是寻找1-x里面,小于等于x的最大数3、因此,利用二分,并且为了减少查找范围,将刚开始的右边界设为x的一半;代码:class Solution { pub

2020-07-27 12:24:11 206

转载 二分查找(普通+左边界+有边界)

二分查找(普通+左边界+有边界)具体详解来自力扣:https://leetcode-cn.com/problems/binary-search/solution/er-fen-cha-zhao-xiang-jie-by-labuladong/特别鸣谢labuladong dalao的详解!!!下面是自己修改的二分模板,觉得需要记住普通二分,也就是怎么找都可以,对应力扣第704题,链接:https://leetcode-cn.com/problems/binary-search/public in

2020-07-08 21:00:17 1162 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除