自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 抖音a_bogus,mstoken全参数爬虫逆向补环境2024-06-15最新版

可以看到,加密最后运行的函数是s.apply(b,u)并且赋值给了l,那么我们可以大胆猜测一下,这个l就是返回的加密结果,但是我们知道request中有很多加密参数,而且这个代码是jsvmp,所以我们可以认为,这里是调用了jsvmp的指令函数,这个指令函数加密了我们的a_bogus,但是也被其他的一些需求调用,所以说我们要定位到加密a_bogus的时机。首先看一下接口的加载器,也就是发送请求的调用栈,挨个查看之后不难发现,加密的入口应该在这两处,由于栈中的调用顺序是从下往上,所以我们先看下面那个入口。

2024-06-12 23:30:03 14929 22

原创 k8s集群换ip

k8s集群更换ip

2023-09-13 10:45:41 1449

原创 游戏中的匹配算法

在之前的游戏组队业务中,产品提了个需求,要进行玩家匹配,每个玩家有自己的区服段位性别等信息,并且还有组队要求。例如一男玩家只想找性别女的,qq区的,分段是最强王者的,一女玩家只想找男玩家,微信区的,分段是星耀的,还有的玩家想找同性别的,等等需求不同的玩家构成了一个匹配集合,我们需要解决的就是如何把符合需求的玩家尽可能的匹配到一起。

2023-07-14 14:24:42 1302

原创 Ubuntu22.04部署k8s集群常见问题

Ubuntu22.04部署k8s集群常见问题。

2023-06-07 23:30:11 359

原创 Mongod通过systemctl启动自动被pid:1以signal 15杀掉

Mongod通过systemctl启动自动被pid:1以signal 15杀掉

2023-05-10 16:47:12 570

原创 attempt to yield across metamethod/C-call boundary

在我们的c代码中,尽量保证不要yield包括该c代码调用的lua代码,如果yield必要,一定要加上延续函数保证程序正常运行。

2023-03-02 11:10:48 716

原创 pairs和iparis

pairs和iparis

2022-12-14 13:09:43 671

原创 lua vm 共享 proto

lua vm 共享proto 解读

2022-12-08 20:58:24 788

原创 lua5.4数据结构之Table

lua5.4数据结构之Table

2022-08-28 18:21:03 925

原创 浮点数机制学习

因为float的指数能从+128 ~ -127,其中+128被表示为无穷数,-127被表示为浮点数0,因此实际能表示到的为+127 ~ -126,也就是float能表示 尾数 * 2。因为尾数为23位0~8,388,608,也就是10进制的7位精度,但是第7位只到8,不完全,所以实际能保证的只有6位精度。,因此最高位应该始终位1,所以最高位的1可以省略。指数位采用偏置指数,即加上一个常数,例8位指数位的偏置指数为127 那么2。指数位就是122,浮点数0的指数为2。指数位就是130,2。

2022-08-20 15:59:09 496

原创 Linux网络编程

ARP情况一:我与小胖位于同一子网。我向小胖的ip地址发起arp请求,小胖收到回应,告诉我他的mac地址,然后我向该mac地址发送hello即可。情况二:我与小胖不在同一子网。由于不在同一子网,我需要向我的网关发送arp请求,网关告诉我mac地址,然后我向告诉网关:“向小胖的ip发hello”。剩下的事情,我就不用管了,如果网络可达,那么小胖就会收到我发的hello。判断主机大小端#include <iostream>using namespace std;int main(){

2021-08-27 14:17:45 199

原创 Linux多线程开发

线程概述线程:与进程(process)类似,线程(thread)是允许应用程序并发执行多个任务的一种机制。一个进程可以包含多个线程。同一个程序中的所有线程均会独立执行相同程序,且共享同一份全局内存区域,其中包括初始化数据段、未初始化数据段,以及堆内存段。(传统意义上的 UNIX 进程只是多线程程序的一个特例,该进程只包含一个线程)。进程是 CPU 分配资源的最小单位,线程是操作系统调度执行的最小单位。查看指定进程的 LWP 号:ps –Lf pid需要注意的是,一个进程结束仅当主线程return

2021-08-23 18:19:01 158

原创 Linux多进程开发

进程概述1、概念进程是正在运行的程序的实例。是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。每个进程都由进程号来标识,其类型为 pid_t(整型),进程号的范围:0~32767。进程号总是唯一的,但可以重用。当一个进程终止后,其进程号就可以再次使用。进程组是一个或多个进程的集合。他们之间相互关联,进程组可以接收同一终端的各种信号,关联的进程有一个进程组号(PGID)。默认情况下,当前的进

2021-08-19 15:54:23 226

原创 Linux部署LAMP

从0开始网站搭建准备工作:1、软件:Xshell、Xftp用于连接云服务器和进行文件传输。进去填写邮箱,他会给你发个邮件,通过邮件获得下载链接,通过下载链接下载Xshell和Xftp。2、硬件:云服务器使用阿里云。进去直接购买 轻量应用服务器 1核2G 地域选择距离较近的距离就好,镜像类型选择系统镜像,系统镜像选择CentOS 版本任意,数据盘40够用不需要加。...

2021-08-15 12:06:01 321

原创 Linux系统编程入门

开发环境1、阿里云服务器+xshell+vscode。2、vscode安装remote插件远程连接服务器。在cmd输入ssh-keygen -t rsa创建密钥对,在服务器中同样的操作创建密钥对,把本地.ssh文件夹的公钥内容复制到服务器中.ssh文件夹的authorized_keys中去即可完成无需密码访问服务器。3、服务器端安装g++。yum install -y gcc-c++静态库1、准备多个.o目标代码文件。2、使用ar(archive)进行制作。ar rcs libxxx.a

2021-08-14 13:23:32 650

原创 平衡二叉树和红黑树的插入操作

平衡二叉树1、插入操作struct AVLtreenode{ int data; //可以换成键值对类型,比较键值 int bf; //平衡因子的值是左子树高度减去右子树的高度,因此+1代表左子树高1,0代表左右一样高,-1代表右子树高1. AVLtreenode *lchild, *rchild; AVLtreenode() : data(0), bf(0), lchild(NULL), rchild(NULL) {} AVLtreenode(int va

2021-08-04 11:48:44 259

原创 二叉平衡树实现

二叉平衡树实现讲解原理的博客较多,这里只进行实现。由于serch比较简单,我们着重实现insert操作。代码:struct AVLtreenode{ int data; //可以换成键值对类型,比较键值 int bf; //平衡因子的值是左子树高度减去右子树的高度,因此+1代表左子树高1,0代表左右一样高,-1代表右子树高1. AVLtreenode *lchild, *rchild; AVLtreenode() : data(0), bf(0), lchild

2021-07-22 19:33:48 191

原创 双向bfs

双向bfs解空间例如,一个bfs的解空间为 st 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 ans 22 23 24 25 26 当用正常bfs从st起点向下搜索时,会发现,搜索空间不断变大,很可能会导致超时,那么我们就可以同时从ans和st进行搜索,可以减少解空间,降低时间复杂度。

2021-07-17 09:45:41 124

原创 leetcode#248 中心对称数 III

leetcode#248 中心对称数 III题目:中心对称数是指一个数字在旋转了 180 度之后看起来依旧相同的数字(或者上下颠倒地看)。写一个函数来计算范围在 [low, high] 之间中心对称数的个数。示例:输入: low = "50", high = "100"输出: 3 解释: 69,88 和 96 是三个在该范围内的中心对称数思路:数位dp。计算位数小于字符串位数的个数,计算长度相等时的个数最后相加。代码:class Solution{public: boo

2021-07-15 20:34:57 926

原创 leetcode#246 中心对称数

leetcode#246 中心对称数题目:中心对称数是指一个数字在旋转了 180 度之后看起来依旧相同的数字(或者上下颠倒地看)。请写一个函数来判断该数字是否是中心对称数,其输入将会以一个字符串的形式来表达数字。示例:输入: num = "69"输出: true思路:可以想到,只有6,9,1,8,0关于中心对称,那么我们可以把它们替换成他们对称的数,然后变换前后的字符串是否对称就可以了。代码:class Solution{public: bool isStrobogramm

2021-07-15 16:36:22 853

原创 leetcode#241 为运算表达式设计优先级

leetcode#241 为运算表达式设计优先级题目:给定一个含有数字和运算符的字符串,为表达式添加括号,改变其运算优先级以求出不同的结果。你需要给出所有可能的组合的结果。有效的运算符号包含 +, - 以及 * 。示例:输入: "2-1-1"输出: [0, 2]解释: ((2-1)-1) = 0 (2-(1-1)) = 2思路:对于一个形如 x op y(op 为运算符,x 和 y 为数) 的算式而言,它的结果组合取决于 x 和 y 的结果组合数,而 x 和 y 又可以写成形如 x o

2021-07-15 14:53:32 188

原创 leetcode#240 搜索二维矩阵 II

leetcode#240 搜索二维矩阵 II题目:编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例:输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 5输出:true思路:二分不用说比较简单 。第二种思路,因为数

2021-07-15 12:21:44 102

原创 leetcode#238 除自身以外数组的乘积

leetcode#238 除自身以外数组的乘积题目:给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]思路:最简单的办法就是算所有数的乘积然后除以当前数,但是不能用除法,我们可以想到,当位置的答案是他左面所有数的乘积和右边所有数的乘积,那么我们可以维护两个数组,一个从左到右乘,一个从右往左乘,其中从左

2021-07-15 11:28:57 108

原创 leetcode#229 求众数II

leetcode#229 求众数II题目:给定一个大小为 n 的整数数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。进阶:尝试设计时间复杂度为 O(n)、空间复杂度为 O(1)的算法解决此问题。示例:输入:[3,2,3]输出:[3]思路:摩尔投票法:原先的是两个不同的消去,现在换成三个不同的消去就可以了,设两个候选人a,b,如果当前数和a,b不同,那么说明他们三个可以消去了,a,b的票数各减一,如果和a,b相同就可以加票,如果a,b票数小于0进行换届。代码:class Solu

2021-07-14 17:03:48 123

原创 leetcode#226 翻转二叉树

leetcode#226 翻转二叉树题目:翻转一棵二叉树。示例:输入: 4 / \ 2 7 / \ / \1 3 6 9输出: 4 / \ 7 2 / \ / \9 6 3 1思路:可以想到这是一个递归问题,对于当前节点,反转他的左右子节点即可。代码:/** * Definition for a binary tree node. * struct TreeNode { * i

2021-07-14 15:36:26 100

原创 leetcode#218 天际线问题

leetcode#218 天际线问题题目:城市的天际线是从远处观看该城市中所有建筑物形成的轮廓的外部轮廓。给你所有建筑物的位置和高度,请返回由这些建筑物形成的 天际线 。每个建筑物的几何信息由数组 buildings 表示,其中三元组 buildings[i] = [lefti, righti, heighti] 表示:lefti 是第 i 座建筑物左边缘的 x 坐标。righti 是第 i 座建筑物右边缘的 x 坐标。heighti 是第 i 座建筑物的高度。天际线 应该表示为由 “关键

2021-07-14 10:48:14 310

原创 leetcode#214 最短回文串

leetcode#214 最短回文串题目:给定一个字符串 s,你可以通过在字符串前面添加字符将其转换为回文串。找到并返回可以用这种方式转换的最短回文串。示例:输入:s = "aacecaaa"输出:"aaacecaaa"题目:可以想到,我们第一个操作就是找到,最长的前缀回文串,第一种方法是n2暴力找,第二种是KMP,对于一个回文串s,设他的reverse为_s,可以想到一个回文串的s和_s相等,对于此题,我们可以进行KMP,匹配串为_s,模式串为s,可以想到,如果存在回文串,那么_s的后缀回

2021-07-12 16:01:39 201

原创 leetcode#212 单词搜索II

leetcode#212 单词搜索II题目:给定一个 m x n 二维字符网格 board 和一个单词(字符串)列表 words,找出所有同时在二维网格和字典中出现的单词。单词必须按照字母顺序,通过 相邻的单元格 内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母在一个单词中不允许被重复使用。示例:输入:board = [["o","a","a","n"],["e","t","a","e"],["i","h","k","r"],["i","f","l","v"

2021-07-12 14:03:25 133

原创 leetcode#202 快乐数

leetcode#202 快乐数题目:编写一个算法来判断一个数 n 是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。如果 n 是快乐数就返回 true ;不是,则返回 false 。示例:输入:19输出:true解释:12 + 92 = 8282 + 22 = 6862 + 82 = 10012 + 02 + 0

2021-07-11 10:51:48 143

原创 leetcode#201 数字范围按位与

leetcode#201 数字范围按位与题目给你两个整数 left 和 right ,表示区间 [left, right] ,返回此区间内所有数字 按位与 的结果(包含 left 、right 端点)。示例:输入:left = 5, right = 7输出:4思路:设区间为[left,right],实质是求left和right二进制位的公共前缀,然后后面全置位0。二进制最高位1长度不同right: 00100111left: 00000100可见,在100111中一定会有一个进位,

2021-07-11 10:07:55 227

原创 leetcode#191 位1的个数

leetcode#191 位1的个数题目:编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。示例:输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 '1'。示例 2:思路:n&(n-1)可以去掉n的最后一个1。例如6&5=4,110&101=100。代码:c

2021-07-10 08:55:44 94

原创 leetcode#190 颠倒二进制位

leetcode#190 颠倒二进制位题目:颠倒给定的 32 位无符号整数的二进制位。示例:输入: 00000010100101000001111010011100输出: 00111001011110000010100101000000解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596, 因此返回 964176192,其二进制表示形式为 00111001011110000010100101000000。思路:

2021-07-09 11:51:55 120

原创 leetcode#189 旋转数组

leetcode#189 旋转数组题目:给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例:输入: nums = [1,2,3,4,5,6,7], k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]思路:第一次反转把想要的结尾的数字反转到前面来,然后,这些数字反转成正序就好了。代码:class Solut

2021-07-09 11:28:54 93

原创 leetcode#179 最大数

leetcode#179 最大数题目:给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。示例:输入:nums = [10,2]输出:"210"思路:生成一种新的排序方式,对于两个数,我们不知道他们怎么排最大,那么我们直接比较结果就好了,使得a+b>b+a就可以了。代码:class Solution{public: string largestNumber(vector

2021-07-08 12:32:34 183

原创 leetcode#172 阶乘后的零

leetcode#172 阶乘后的零题目:给定一个整数 n,返回 n! 结果尾数中零的数量。示例:输入: 3输出: 0解释: 3! = 6, 尾数中没有零。思路:可以想到,最简单的办法就是算出结果,然后数有几个0。效率太低。可以想到0是5乘出来的,就算是,所以算有多少个5就可以了,然而25是2个5,所以要多算一个,也就是每25个多算一个,以此类推,125也要多算一个。代码:class Solution {public: int trailingZeroes(int n)

2021-07-08 10:02:43 91

原创 leetcode#169 多数元素

leetcode#169 多数元素题目给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例:输入:[3,2,3]输出:3思路:可以想到众数是最多的数,我们维护一个cnt,如果是众数,cnt+1,不是众数,cnt-1,最后cnt一定大于0;但是我们不知道众数是什么怎么办,就假设一个众数,然后cnt<0时进行更换就可以了。代码:class Solution{pu

2021-07-07 15:42:31 87

原创 leetcode#166 分数到小数

leetcode#166 分数到小数题目:给定两个整数,分别表示分数的分子 numerator 和分母 denominator,以 字符串形式返回小数 。如果小数部分为循环小数,则将循环的部分括在括号内。如果存在多个答案,只需返回 任意一个 。对于所有给定的输入,保证 答案字符串的长度小于 1e4 。示例:输入:numerator = 1, denominator = 2输出:"0.5"思路:不难想到非循环小数的写法,也就是正常的除法,对于循环小数的循环节,可以发现,当一个余数重复出现

2021-07-07 14:46:36 158

原创 leetcode#165 比较版本号

leetcode#165 比较版本号题目:给定一个无序的数组,找出数组在排序之后,相邻元素之间最大的差值。如果数组元素个数小于 2,则返回 0。示例:输入: [3,6,9,1]输出: 3解释: 排序后的数组是 [1,3,6,9], 其中相邻元素 (3,6) 和 (6,9) 之间都存在最大差值 3。思路:很容易想到依次取出每个块,然后进行比较,可以想到的是,对于有前导0的字符串,我们除了把0删除后比较以外,我们可以直接把这个字符串转换成数字就可以了,这样就不用把整个块提出来计算了。代码:

2021-07-07 12:55:16 152

原创 leetcode#164 最大间距

leetcode#164 最大间距题目给定一个无序的数组,找出数组在排序之后,相邻元素之间最大的差值。如果数组元素个数小于 2,则返回 0。示例:输入: [3,6,9,1]输出: 3解释: 排序后的数组是 [1,3,6,9], 其中相邻元素 (3,6) 和 (6,9) 之间都存在最大差值 3。思路:基数排序.代码:class Solution{public: int maximumGap(vector<int> &nums) {

2021-07-07 12:32:59 103

原创 leetcode#162 寻找峰值

leetcode#162 寻找峰值题目:峰值元素是指其值大于左右相邻值的元素。给你一个输入数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。示例:输入:nums = [1,2,3,1]输出:2解释:3 是峰值元素,你的函数应该返回其索引 2。思路:一边遍历很容易想到,但是我们可以用二分,不难想到,一个点如果落在下降区间,那么左边一定有峰值,如果一个点在上升区间,那么他的右边一定有峰值,因此我们可以用二分来解决。代码:cl

2021-07-07 11:04:56 107

空空如也

空空如也

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

TA关注的人

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