自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 全部由1组成的子矩形的数量

的数是第2个2,然后h=2-2=0, 没有计算以第一个2为最小高度时的子矩阵数,到了第2个2的时候,左边比它小的数没有,右边比它小的数也没有,h=2-0=2, 到了第2个2的时候才计算了下面的阴影部分的子矩阵的数量,这样就不会算重复,只会在最后一个2的时候去计算以2为最低高度的时候那块高度为2连通的大区域的子矩阵数,必须是。(地基必被算)得到一个个直方图数组去算去加和,其实你按我上面的说法1-1,1-2,1-3....,不同高度这样一行一行的去算就知道对不对了。第二行:2 2 2 2 0 2。

2024-07-21 06:00:58 278

原创 最大子矩形中1的个数

如果去枚举子矩形的话,需要取对角线上的2个点,取一个点的时间复杂度是O(n^2),取两个点形成的可能就是 n^4,取到子矩形之后还要判断内部是不是都是1,需要n^2,所以最暴力的时间复杂度就是 O(n^6)。给定一个二维数组 matrix,其中的值不是0就是1,返回全部由1组成的最大子矩形中1的个数。比如,下面这个图中由1组成的最大子矩形的1的个数就是12。),取max,就能得到最大的子矩形中1的个数了,将二维问题转变为了一维问题,所以就是像下面这样。第一行:1 1 1 1 0 1。

2024-07-21 04:17:55 253

原创 直方图的最大长方形面积

遍历arr数组,以当前遍历到的数组元素作为它所在的长方形中的最小的高,向它的两边往外扩,那么当遇到左边的最近的比它小的元素和右边离它最近且比它小的元素时,停止扩张,中间的区域都是能以它作为最小的高的长条,计算长方形面积 = 当前最小高 * 区域长度,取max。给定一个非负数(0和正数),代表直方图,返回直方图的最大长方形面积,比如,arr = {3, 2, 4, 2, 5},那么直方图就是下面这个样子的,最大的长方形面积为图中阴影部分面积,为2*5 = 10。

2024-07-21 02:07:02 189

原创 子数组的最大值

所以是,有重复值时(比如这里的6,以当前值为最小值,我前面的6都做过最小值了,所以不算,所以其实最后一个6计算出来的M值是最大的,因为子数组是 6 6 6, 第一个6以自己做最小值的子数组是 6,第2个6以自己做最小值的子数组是 6,6。对于数组 arr 中的所有值,假设每个值都能当一次它所在的子数组中的最小值,那么要让 M 尽可能的大,就需要子数组sub的累加和尽可能的大了,所以对于当前作为最小值的元素,找到它的左边和右边离它最近且比它。3 6 6 (第一个6的左边是3,右边是第2个6),

2024-07-21 00:25:14 251

原创 单调栈基础题

(栈里放的是元素下标,元素值通过arr[下标] 获取到)如果 arr 中有重复的元素,那么往栈中放的就不应该是下标了,就应该是下标的列表,{0,1}这样,还是遍历arr 数组,如果当前元素比 栈顶 中下标列表对应的元素(可以取列表最后一个下标)要小,那么让栈中的下标列表出栈,这些下标对应元素的左侧离它最小的值的下标都是栈中它的位置的下一个列表的最后一个下标,而右边离它最小的值的下标就是当前遍历到的下标。单调栈说的是栈在放入元素时总会维持栈中元素的有序,比如栈中元素从下到上都是递增的 or 递减的。

2024-07-20 18:57:56 249

原创 是否可以从某点开始加油站的循环

用一个双端队列,L初始指向0位置,将元素从右边队尾入队,如果队列为空或当前元素比队尾元素小,从队尾入队 ,否则,让队列尾部比当前元素小的元素都出来,将当前元素从尾部入队(在队列尾部维护一个严格的从大到小的数据列),受窗口大小限制,L向右移动一格让左侧元素出窗口,左指针右移时,对应队列中的值从左边出队(队列中放的是数组的下标),go on,在这个过程中,L指针指向的值就是当前窗口内的最大值。从2位置出发,能不能到绕一圈再回到2 看从2位置开始的耗油里有没有

2024-07-14 19:07:54 376 2

原创 达标的子数组数量

探索以0为开始的子数组,往外延伸,[0,0],[0,1],[0,2],[0,3]...,如果延伸到R的某个下标时,[0,R]这个窗口内的最大值-最小值>num,好,那么再往外延伸的子数组都不会是达标的,比如上面的[0,3]都是达标的,到[0,4]开始出现不达标,那么以0开头的子数组中满足达标的子数组的数量就是4个,然后开始探索以1为开始的子数组....,过程和上面一样,计算这个过程中达标的子数组的总数。【6 4 2 3 5 7 0 5】 这样的一序列数(数组arr),求窗口滑动过程中的最大值列表。

2024-07-14 16:48:00 199

原创 滑动窗口的最大值

way:定义大小为arr.size-w+1长度大小的答案数组,定义一个放元素下标的队列,当队尾的元素比当前R指针(遍历arr的指针)指向的元素要小时,从队尾出队,让R指针指向下标入队,如果队头元素的下标==R-w(窗口大小限制),让队头的下标出队,当R>=w-1时,收集答案,将队头下标放入答案数组。arr的长度为8 , 窗口的长度为3, 最大值列表的长度为6,窗口的长度 = arr.size - w +1 = 8-3+1=6,可以自己滑动一下试试就知道了。

2024-07-14 16:24:30 210

原创 AutoComplpop插件无法起作用

不要在.vimrc 中 set paste。

2024-07-13 16:58:27 422

原创 Lua协程(同步的多线程)

创建一个协程,返回co(coroutine),参数是一个函数,当调用resume时就唤醒co并调用函数。返回正在跑的协程co,如果没有协程正在running就返回nil (协程处于running状态才行)创建一个协程,返回一个函数,调用函数就进入协程 => cfunc(函数参数)查看协程的状态,有 dead, suspend, running 3种状态。启动协程co并传入协程调用函数的参数,可以带回协程yield挂起返回的值。挂起协程co,可以带出参数作为resume的返回值。

2024-07-13 16:55:01 436

原创 redis命令

从source列表右边弹出一个值插入到destination的左边,如果列表没有元素会阻塞列表直到等待超时或者发现可弹元素为止。从左边pop出一个值,如果列表没有元素会阻塞列表直到等待超时或者发现可弹元素为止。从右边pop出一个值,如果列表没有元素会阻塞列表直到等待超时或者发现可弹元素为止。对一个列表进行修剪,只保留列表start到end区间内的元素,其他全删除。将一个或多个有序集合的交集存储在destination集合中。将一个或多个有序集合的并集存储在destination集合中。

2024-07-13 03:36:02 758

原创 Linux的搜索命令

可以将locate看作是一个简化版的find, 使用这个命令我们可以根据文件名搜索本地的磁盘文件, 但是locate的效率比find要高很多。原因在于它不搜索具体目录,而是搜索一个本地的数据库文件,这个数据库中含有本地所有文件信息。对于要搜索的文件内容, 建议放到引号中, 因为关键字中可能有特殊字符, 或者有空格, 从而导致解析错误,关于引号, 单双都可以,可根据自己的需求选择。如, find /root -name *.txt ,搜索root 家目录下文件后缀为 txt 的文件。locate 关键字。

2024-07-12 00:40:05 564

原创 Linux命令

所以 chmod 567 a.txt 中的5代表 r+x,表示文件所有者的权限是r+x, 6表示文件所属组的用户的权限是r+w,其他人的权限是 r+w+x。mod, 代表权限,可以是 r, 代表读权限,可以是 w, 代表写权限,可以是 x,代表执行权限,可以是 - ,代表无权限。opt, 表示对权限的操作,可以是 +, 代表添加权限,可以是 - ,代表去除权限,可以是 =, 代表权限覆盖赋值。cp 文件A 文件B 将文件A拷贝得到文件B,如果文件B存在则覆盖文件B。

2024-07-11 23:40:11 823

原创 svn命令

7. 查看某个文件的详细信息 ,可以显示当前文件的路径, 名称, 版本号和类型等。5. 拉取主干更新文件到指定版本 更新本地目录及其子目录到最新的版本。6. 查看某个文件的日志,有文件的修改记录以及修改者对修改的描述。svn commit/ci -m "描述" xx文件。svn del 项目文件地址 -m “描述"svn di -r m:n xx文件。svn up -r 版本号 xx文件。svn del xx文件。svn add xx文件。

2024-07-11 09:50:08 187

原创 硬链接和软链接

软链接类似于Windows中的快捷方式,它包含了另一个文件的路径。软链接是一个特殊的文件,其内容是它所链接文件的路径名。

2024-07-05 14:57:12 192

原创 在Linux上查找文件的2个好用的命令

在终端输入命令 find / -name lua,可以看到,所有名为lua的文件或目录都会被搜索出来。在终端输入命令 locate lua,可以看到,所有带lua字符的文件或目录都会被搜索出来。2. find / -name xx (查找名为xx的文件或目录)1. locate xx (查找带xx字符的所有文件或目录)

2024-07-04 18:10:47 314

原创 Makefile的2个常用函数wildcard和patsubst

1. wildcard2. patsubst

2024-07-04 11:41:55 127

原创 制作一个动态库

第一步,使用gcc将源文件进行汇编(参数 -c),使用参数 -fpic 或者 -fPIC 生成与位置无关的目标文件,用参数 -I 指定头文件路径。第三步,将生成的动态库libcalc.so 和 库文件对应的头文件head.h 一起发布出去。gcc通过指定的动态库信息生成了可执行程序, 但是可执行程序运行却提示无法加载到动态库,第二步,使用gcc将得到的目标文件打包生成动态库,需要参数 -shared。添加库信息相关参数,编译生成可执行程序。再执行可执行程序就不会报错了。验证(是否可以加载到动态库)

2024-07-04 11:16:29 186

原创 制作一个静态库

第一步,将源文件add.c, div.c, mult.c, sub.c 进行汇编,得到二进制目标文件add.o, div.o, mult.o, sub.o (注意用-I指定头文件路径)第二步,使用ar工具将生成的目标文件 .o 打包成静态库 (a.o b.o c.o在同一个目录可以写成*.o)第三步,将生成的静态库libcalc.a 和 库文件对应的头文件head.h 一起发布出去。

2024-07-04 10:44:22 355

原创 静态库和动态库的定义

静态库(Static Library)和动态库(Dynamic Library)是两种不同类型的程序库。(它们在软件开发中扮演着重要角色,尤其是在处理代码重用和模块化方面。它们的主要区别在于链接时间、内存占用、以及更新和维护的便利性)

2024-07-04 10:09:28 443

原创 拼接Lua的sql语句

【代码】拼接Lua的sql语句。

2024-07-02 14:49:06 111

原创 Http请求和响应的格式

HTTP(Hypertext Transfer Protocol)请求和响应遵循特定的格式,这些格式基于请求行、请求头、请求体(可选)以及响应行、响应头和响应体(可选)。以下是一个简单的HTTP请求和响应的例子来说明这些格式。

2024-07-01 11:34:30 160

原创 在Centos上安装Lua不要用什么curl指令,这样获取到的压缩包不是gzip格式的

再去解压编译安装就对了。在这一篇里,把这一行。

2024-07-01 08:53:37 229

原创 C++中的4种显示的类型转换

C++支持多种类型的转换,这些转换可以分为两大类:隐式类型转换(Implicit Conversions)和显式类型转换(Explicit Conversions),而显式类型转换又包括四种类型转换运算符。

2024-07-01 02:00:23 496

原创 学习一下C++中的枚举的定义

注意:虽然枚举值在定义时是命名的整数值,但在使用时它们通常被视为它们的底层整数值。因此,你可以将枚举值赋给整数类型的变量,也可以将整数类型的值赋给枚举类型的变量(只要这个整数值在枚举值的范围内)。在C++中,从C++11开始,你可以为枚举类型指定一个底层数据类型(underlying type),以控制枚举值的大小和范围。此外,你还可以使用枚举类型作为函数参数的类型,或者作为数组、结构或类的成员的类型。(也称为非类型安全的枚举或旧式枚举)则没有这样的作用域限制,它们的枚举值将直接处于包含它们的命名空间中。

2024-07-01 01:22:47 327

原创 学习一下宏的##和...

没有被提供,所以预处理器使用。函数调用中产生多余的逗号。##:如果参数不存在则忽略。在第一个例子中,因为。

2024-06-30 15:54:54 281

原创 mysql_config 命令, 可以查看mysqlclient库的位置在/usr/lib64/mysql下

好吧,其实我是从这里知道了 -l 后面加的库名和so文件这种名不一样,因为库文件实际叫下面这个名(前面有lib)。

2024-06-29 21:19:46 328 1

原创 lua5.3.4的Linux的库文件下载地址

LuaBinaries - Browse /5.3.4/Linux Libraries at SourceForge.net

2024-06-29 21:02:37 285

原创 在本地和Linux之间传输文件

4. 传输文件夹 只要在put/get 后面加上 -r 再加上文件夹名(可以写多个文件或文件夹名一起上传或下载)就可以上传或下载了,就像下面这样。3. 看这个链接里面的sftp命令进行本地和Linux之间的文件互传 (2. 然后按这个链接的说法在cmd中远程连接Linux(1.打开本地的cmd窗口。

2024-06-29 20:55:14 340

原创 在vs上远程连接Linux写服务器项目并启动后,可以看到服务启动了,但是通过浏览器访问该服务提示找不到页面(防火墙)

的提示之后,知道防火墙开了,想着可能是我写的服务器的端口被防火墙拦住了,然后添加了防火墙对该端口的允许,重启防火墙再去浏览器里访问就可以访问到我写的服务了。因为我写的服务用了10001端口,所以我用上面2个命令开启了防火墙对10001端口的访问,然后根据这一篇的信息。,知道了查看防火墙允许端口的命令,查看防火墙允许的所有端口可以看到开启了对10001端口的访问。还有一个问题是,怎么才能访问到不同电脑上的,在一个网段内好像也不行.....(待解决)应该是被防火墙挡住了,查看这个。

2024-06-29 13:44:26 362

原创 N皇后问题

way:一行一行的放,从第一行开始放,所以放的所有皇后一定不共行,所以只需要在放的过程中保持不共列,不共斜线就可以了。其实第一行放的皇后位置决定了,后面行的也就确定了,如果后面怎么放都不对,说明第一行放的位置就是有问题的。坐标(x,y)与(m,n)共斜线的条件是|x-m|==|y-n|。题目描述:N皇后问题是指在N*N的棋盘上要摆N个皇后,要求任何两个皇后不同行,不同列,也不在同一条斜线上,给定一个整数N,返回N皇后的摆法有多少种。N=2或3,2皇后或3皇后问题无论怎么摆都不行,返回0,N=8,返回92。

2024-05-28 15:06:32 159

原创 返回拆分出sum相近的2个集合时,数量也相近的相对小的sum

way://arr[index...]自由选择,挑选的个数一定要是picks个,返回距离rest最近且

2024-05-28 12:24:17 185 2

原创 分成sum接近的2个集合,返回相对小的sum

题目描述:给定一个正数数组arr,请把arr中所有的数分成两个集合,尽量让两个集合的累加和接近,返回最接近的情况下,较小集合的累加和sum。//arr[index...]可以自由选择,返回累加和尽量接近rest,但不能超过rest的情况下,最接近的值。

2024-05-28 02:04:32 250

原创 整数拆分~

way2:dp版,初始化,dp过程,值得注意。//上一个拆出来的数是pre。//还剩下rest需要去拆。//返回拆解的方法数。

2024-05-28 01:19:30 252 1

原创 组成aim的最少货币数

题目描述:arr是面值数组,其中的值都是正数且没有重复,再给定一个正数aim,每个值都认为是一种面值且认为张数是无限的,返回组成aim的最少货币数。

2024-05-25 23:23:49 200

原创 砍死怪兽的概率

way:概率=砍完K次之后存活(还有血)的掉血方案数/砍K次之后的所有的掉血方案数pow(M+1,K)。如果砍到某刀的时候血量已经掉完了,那么后面怎么砍都是可以砍死的,后面的方案数是pow(M+1, 剩余可砍的次数)。题目描述:给定3个参数,hp,M,K,怪兽有N滴血,等着英雄来砍自己,英雄每一次打击,都会让怪兽流失[0,M]的血量,流失的值每次在[0,M]上等概率的获得一个值,求K次打击之后,英雄把怪兽砍死的概率。

2024-05-25 21:03:29 235

原创 Bob还在棋盘中的概率

题目描述:给定5个参数,N,M,row,col,K,表示在N*M的区域上,醉汉Bob初始在(row,col)位置,Bob一共要迈出K步,且每步都会等概率向上下左右的4个方向之一走一个单位,任何时候Bob只要离开N * M区域,就直接死亡,返回K步之后,Bob还在N * M区域中的概率。way:初始在某点的概率=在某点可以生存下来的路线数/在某点可以走的总路线数(4的K次方)(K步)。

2024-05-25 19:38:43 189

原创 组成aim的方法数3(有限张,重复牌视为相同)

题目描述:arr是货币数组,其中的值都是正数,再给定一个正数aim,每个值都认为是一张货币,认为值相同的货币没有任何不同,返回组成aim的方法数。例如,arr=[1,2,1,1,2,1,2],aim=4,方法,1+1+1+1,1+1+2,2+2,一共3种方法,所以返回3。

2024-05-25 16:55:16 198 1

原创 组成aim的方法数2(无限多张)

题目描述:arr是面值数组,其中的值都是正数且没有重复,再给定一个正数aim,每个值都认为是一种面值,且认为张数是无线的,返回组成aim的方法数。例如,arr=[1,2],aim=4,方法有,1+1+1+1,1+1+2,2+2,一共3种方法,所以返回3。way://arr[index...]所有的面值,每一个面值都可以选择无限多张,组成rest元的方法数。

2024-05-25 15:56:12 156

原创 组成aim的方法数1(有限张,重复牌视为不同)

题目描述:arr是货币数组,其中的值都是正数,再给定一个正数aim,每个值都认为是一张货币,即使是值相同的货币也认为每一张都是不同的,返回组成aim的方法数。例如,arr=[1,1,1],aim=2,第0个和第1个能组成2,第1个和第2个能组成2,第0个和第2个能组成2,一共就3种方法,所以返回3。way://arr[index...] 组成正好rest这么多的钱,有几种方法。

2024-05-24 23:53:52 219

空空如也

空空如也

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

TA关注的人

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