自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Dijkstra求最短路 II——堆优化版本Dijkstra算法

【代码】Dijkstra求最短路 II——堆优化版本Dijkstra算法。

2024-01-26 21:24:13 278

原创 Dijkstra求最短路 I——朴素版Dijkstra算法

【代码】Dijkstra求最短路 I——朴素版Dijkstra算法。

2024-01-26 21:23:27 71

原创 有向图的拓扑序列——拓扑排序

若一个由图中所有点构成的序列 A 满足:对于图中的每条边 (x,y),x 在 A 中都出现在 y 之前,则称 A 是该图的一个拓扑序列。图中不能有环图中至少存在一个点的入度为0。

2024-01-25 22:22:16 281

原创 图中点的层次——树与图的广度优先遍历

【代码】图中点的层次——树与图的广度优先遍历。

2024-01-25 22:21:38 219

原创 树的重心——树与图的深度优先遍历

如果把2这个节点删除后,可以得到三个连通块8:点数15:点数1:点数6。

2024-01-24 11:25:13 1045

原创 走迷宫——BFS

【代码】走迷宫——BFS。

2024-01-24 11:23:56 363

原创 n-皇后问题——DFS

【代码】n-皇后问题——DFS。

2024-01-23 12:15:40 740

原创 排列数字——DFS

【代码】排列数字——DFS。

2024-01-23 12:14:35 341

原创 一元三次方程求解——浮点数二分

【代码】一元三次方程求解——浮点数二分。

2023-11-23 08:35:55 55

原创 Parity Game——种类并查集、权值并查集、离散化

【代码】Parity Game——种类并查集、权值并查集、离散化。

2023-11-19 21:37:23 161

原创 Cow Lineup S——离散化、单调队列、双指针

【代码】Cow Lineup S——离散化、单调队列、双指针。

2023-11-17 15:58:58 80

原创 借教室——二分、前缀和、差分

【代码】借教室——二分、前缀和、差分。

2023-11-15 20:56:35 63

原创 程序自动分析——并查集、离散化

【代码】程序自动分析——并查集、离散化。

2023-11-15 10:48:27 198

原创 火烧赤壁——离散化、差分

【代码】火烧赤壁——离散化、差分。

2023-11-14 21:30:29 82

原创 聪明的质检员——二分、前缀和

一个整数,表示所求的最小值。

2023-11-14 12:31:19 122

原创 区间合并——基础算法

给定 n个区间 [li,ri],要求合并所有有交集的区间。注意如果在端点处相交,也算有交集。输出合并完成后的区间个数。例如:[1,3] 和 [2,6] 可以合并为一个区间 [1,6]。

2023-11-12 21:40:07 39

原创 扫雷MINE——枚举+递推

现在棋盘是n×2的,第一列里面某些格子是雷,而第二列没有雷,如下图: 由于第一列的雷可能有多种方案满足第二列的数的限制,你的任务即根据第二列的信息确定第一列雷有多少种摆放方案。万圣节到了 ,“余”人国流行起了一种简单的扫雷游戏,这个游戏规则和扫雷一样,如果某个格子没有雷,那么它里面的数字 表示和它8连通的格子里面雷的数目。那是在一个n*m的矩阵里面有一些雷,要你根据一些信息找出雷来。第一行为N,第二行有N个数,依次为第二列的格子中的数。(1 ≤ N ≤ 10000)一个数,即第一列中雷的摆放方案数。

2023-11-12 21:29:43 557

原创 丢手绢——尺取法

牛客幼儿园的小朋友们围成了一个圆圈准备玩丢手绢的游戏,但是小朋友们太小了,不能围成一个均匀的圆圈,即每个小朋友的间隔可能会不一致。因为是玩丢手绢,所以小朋友只能沿着圆圈外围跑,所以我们定义两个小朋友的距离为沿着圆圈顺时针走或者逆时针走的最近距离。丢~丢~丢手绢,轻轻地放在小朋友的后面,大家不要告诉她,快点快点抓住她,快点快点抓住她。接下来的第2到第n行,第i行有一个整数,表示第i-1个小朋友顺时针到第i个小朋友的距离。输出一个整数,为离得最远的两个小朋友的距离。

2023-11-12 20:40:03 207

原创 字符串——尺取法

小N现在有一个字符串S。他把这这个字符串的所有子串都挑了出来。一个S的子串T是合法的,当且仅当T中包含了所有的小写字母。小N希望知道所有的合法的S的子串中,长度最短是多少。一行一个数字,代表最短长度。数据保证存在一个合法的S的子串。S的长度不超过106.

2023-11-11 20:37:46 27

原创 二分——差分、前缀和、离散化

但是不是每一个玩猜数游戏的人都知道二分是最好,甚至一个健忘的玩家都有可能在得到裁判回答的下一个瞬间就忘了他之前问了什么以及裁判的回答),而现在更可怕的是,这个告诉你猜的数是高还是低的裁判他也很健忘,他总是薛定谔的记得这个目标数字,也就是说他的回答有可能出错。接下来n行,首先是猜的数,然后是一个空格,然后是一个符号。现在给出这个健忘的玩家的所有猜测和裁判的所有回答,问裁判最多能有多少次是记得目标数字的,即裁判的回复是符合情况的。第一行包含一个正整数n,表示裁判的回答数(也是玩家的猜数次数)。

2023-11-11 13:50:18 159

原创 激光炸弹——二维前缀和

现在地图上有n(N ≤ 10000)个目标,用整数Xi,Yi(其值在[0,5000])表示目标在地图上的位置,每个目标都有一个价值。激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆破范围,即那个边长为R的正方形的边必须和x,y轴平行。输入文件的第一行为正整数n和正整数R,接下来的n行每行有3个正整数,分别表示 xi,yi ,vi。输出文件仅有一个正整数,表示一颗炸弹最多能炸掉地图上总价值为多少的目标(结果不会超过32767)。一种新型的激光炸弹,可以摧毁一个边长为R的正方形内的所有的目标。

2023-11-10 16:04:19 120 1

原创 前缀和与差分——中位数图

给出1~n的一个排列,统计该排列有多少个长度为奇数的连续子序列的中位数是b。中位数是指把所有元素从小到大排列后,位于中间的数。对于100%的数据中,满足 n≤100000,1≤b≤n。第一行为两个正整数n和b ,第二行为1~n 的排列。输出一个整数,即中位数为b的连续子序列个数。对于60%的数据中,满足 n≤1000;对于30%的数据中,满足 n≤100;

2023-11-10 08:33:38 230 1

原创 HTML5和CSS3提高

音频标签和视频标签使用方式基本一致浏览器支持情况不同谷歌浏览器把音频和视频自动播放禁止了我们可以给视频标签添加muted属性来静音播放视频,音频不可以(可以通过avaScript解决)视频标签是重点,我们经常设置自动播放,不使用controls控件,循环和设置大小属性结构伪类选择器一般用于选择父级里面的第几个孩子nth-child对父元素里面所有孩子排序选择(序号是固定的)先找到第n个孩子,然后看看是否和E匹配nth-of-type对父元素里面指定子元素进行排序选择。

2023-08-28 19:51:13 81 1

原创 网页布局的三大核心

float属性用于创建浮动框,将其移动到一边,直到左边缘或右边缘触及包含块或另一个浮动框的边缘。语法:选择器 { float: 属性;属性值描述none元素不浮动(默认值)left元素向左浮动right元素向右浮动定位模式是否脱标移动位置是否常用static静态定位否不能使用边偏移很少relative相对定位否(占有位置)相对于自身位置移动常用absolute绝对定位是(不占有位置)带有定位的父级常用fixed固定定位是(不占有位置)浏览器可视区常用。

2023-08-26 11:06:13 252

原创 循环模拟——LeetCode59螺旋矩阵 II

给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix。输入:n = 3 输出:[[1,2,3],[8,9,4],[7,6,5]]输入:n = 1 输出:[[1]]

2023-08-16 23:00:48 48 1

原创 安卓逆向中常见的加密算法

【代码】安卓逆向中常见的加密算法。

2023-08-15 15:51:08 1013 1

原创 哈希表+双指针法——LeetCode904.水果成篮

输入:fruits = [1,2,3,2,2] 输出:4 解释:可以采摘 [2,3,2,2] 这四棵树。如果从第一棵树开始采摘,则只能采摘 [1,2] 这两棵树。输入:fruits = [0,1,2,2] 输出:3 解释:可以采摘 [1,2,2] 这三棵树。输入:fruits = [3,3,3,1,2,1,1,2,3,3,4] 输出:5 解释:可以采摘 [1,2,1,1,2] 这五棵树。你想要尽可能多地收集水果。输入:fruits = [1,2,1] 输出:3 解释:可以采摘全部 3 棵树。

2023-08-15 12:16:39 34 1

原创 滑动窗口系列——LeetCode209长度最小的子数组

输入:target = 7, nums = [2,3,1,2,4,3] 输出:2 解释:子数组 [4,3] 是该条件下的长度最小的子数组。[numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。输入:target = 11, nums = [1,1,1,1,1,1,1,1] 输出:0。输入:target = 4, nums = [1,4,4] 输出:1。个正整数的数组和一个正整数 target。如果不存在符合条件的子数组,返回 0。找出该数组中满足其和。

2023-08-13 20:54:09 36 1

原创 安卓逆向入门——smali语法(下)

字符串数据字节码数据数值类型数据const-string v0, "hello" # 定义字符串 将字符串"hello"赋值给v0# 定义字节码对象 将GoActivity.class对象赋值给v0# 一下数据定义高位默认为符号位const/4 v0, 0x2 # 定义一个容器 最大只允许存放半字节4位数据 取值范围为 -8 and 7const/16 v0, 0xABCD # 定义一个容器 最大只允许存放16位数据 比如short类型数据 取值范围为-32768~32767。

2023-08-13 12:11:40 1868 1

原创 双指针法经典题目——LeetCode977有序数组的平方

输入:nums = [-4,-1,0,3,10] 输出:[0,1,9,16,100] 解释:平方后,数组变为 [16,1,0,9,100] 排序后,数组变为 [0,1,9,16,100]输入:nums = [-7,-3,2,3,11] 输出:[4,9,9,49,121]排序的整数数组 nums,返回。组成的新数组,要求也按。

2023-08-12 22:12:31 30 1

原创 极简壁纸——简单混淆抠代码

要注意,在node-js中是没有浏览器环境的,所以window['atob']会报错,找不到这个方法,这个方法的含义是用于解码使用base64编码的字符串,在node-js中用atob(s)表示将s解码使用base64编码的字符串。这里的t数组中存放的是发送请求和接受响应的方法,本来是可以在这里进行断点,然后找到响应返回的方法,但是不知道怎么回事,在这里断点的时候会跳到另一个js文件中,所以这个方法搞不了。网页的加载是一个异步的过程,肯定会走拦截器,我们在全局搜索interceptors。

2023-08-12 21:19:13 208 3

原创 安卓逆向入门——smali语法(上)

【代码】安卓逆向入门——smali语法(上)

2023-08-11 20:45:39 1098 1

原创 逆向七麦数据榜单

按照常理,这条路走不通,那我们先在全局搜索加密的请求参数analysis和请求网页的url,经过搜索之后发现url和请求参数都没有有用的信息,那么我们可以有理由猜测,大概率使用了拦截器,只是被混淆了,我们平常的搜索找不到,我们只能在jQuery的源码里找拦截器的入口了。t数组前两个存放的是请求成功和失败应该执行的方法,中间两个是真正发送请求的方法,后面两个是返回响应数据成功和失败应该执行的方法。剩下的步骤就是抠代码,然后找到加密的方法,进行相对的解密了。可以发现,拦截器是被混淆过的,因此不能被搜索到。

2023-08-09 09:45:32 941 1

原创 python爬虫解决字体加密问题

代码的主要思路是,先下载一个woff文件,转化成xml,然后找到标签,使用flags方法获取中每个字体的on属性,将on属性的b'\x01'进行替换成空字符串,只留下b'\x00'更能提高准确性,声明一个字典,将字体和on属性进行key-value映射,制定一套模板,后续请求的woff文件进行循环遍历字体的Unicode,和模板中的on属性进行比对,找到对应的字体。name里面的是字体的Unicode,x、y表示字体通过哪些坐标绘画成的,on的内容表示画的黑线还是白线。

2023-08-08 19:57:00 1625

原创 BFS-走迷宫问题

给定一个 n×m的二维整数数组,用来表示一个迷宫,数组中只包含 0或 1,其中 0表示可以走的路,1表示不可通过的墙壁。最初,有一个人位于左上角 (1,1)处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。请问,该人从左上角移动至右下角 (n,m)处,至少需要移动多少次。数据保证 (1,1) 处和 (n,m)处的数字为 0,且一定至少存在一条通路。

2023-07-25 23:10:04 131

原创 Java中的enum枚举类

引出:如果我们有一个类Season表示季节,众所周知季节只有春夏秋冬四个,我们为了避免出现定义错误的季节对象,就要使用到enum枚举类,枚举类可以帮助我们固定好实例化对象,使我们不能进行修改

2023-07-13 01:14:00 60 1

原创 Java中的四种内部类

​一个类的内部又完整的嵌套了另一个类结构。被嵌套的类称为内部类,嵌套其他类的类称为外部类。

2023-07-08 00:41:57 126 1

原创 Java中的代码块

调用静态代码块和静态属性初始化(注意:静态代码块和静态属性初始化的优先级是相同的,如果有多个静态代码块和静态属性初始化时,按照它们的顺序调用)调用普通代码块和普通属性初始化(注意:普通代码块和普通属性初始化的优先级是相同的,如果有多个普通代码块和普通属性初始化时,按照它们的顺序调用)在类加载的时候被调用。

2023-06-18 19:16:15 76 3

原创 快速排序的实现及模板

给定一个长度为 n的整数数列,以及一个整数 k,请用快速选择算法求出数列从小到大排序后的第 k个数。第二行包含 n个整数(所有整数均在 1∼1091∼109 范围内),表示整个数列。请你使用快速排序对这个数列按照从小到大进行排序。输出共一行,包含 n个整数,表示排好序的数列。第二行包含 n个整数(所有整数均在 1∼10。输出一个整数,表示数列的第 k小数。给定你一个长度为 n 的整数数列。输入共两行,第一行包含整数 n。第一行包含两个整数 n和 k。并将排好序的数列按顺序输出。范围内),表示整数数列。

2023-05-12 15:47:49 33 2

原创 C语言入门

在计算机的中央处理器(CPU)中,只能读懂用二进制编码(0、1数列),为了普及C语言,现在创造出了许多的计算机编程语言,C语言就是其中之一。对待一件事情,我们要从整体出发,一步步搞懂它的每一部分,这样我们可以形成一个基本的框架,学习每一部分的时候都能更清晰明了。最后最后,语法很重要,我们学习的一些函数只不过是辅助我们实现我们想达到的目的,心中有目标,才能更好的调用我们应该使用的函数。监视(调试——窗口——监视) 调试的时候可以看到变量的大小变化,方便查看代码怎么运行的,也更好查找bug。

2022-09-08 23:51:37 376 1

空空如也

空空如也

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

TA关注的人

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