自定义博客皮肤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)
  • 收藏
  • 关注

原创 未见过类型题每周总结(个人向)

一道01背包的衍生问题,我们可以按照它的思路定义数组dp[i][j],表示前i个数中%k为j的最大和。还有一个特殊情况,如果没有任何数相加%k为0则j等于0就一直是0,但是我们要输出-1,所以最后我们要判断如果dp[n][0]为0,则输出-1。用最长上升子序列,以第i个为中心即可,d[i]表示从1到i的最大子序列,p[i]表示从n到i的最大子序列,d[i]=(d[0]到d[i-1]中小于这个数的最大值)+1,p[i]=(p[n]到p[i+1]中小于这个数的最大值)+1,每个数都要和1比,因为自身也有长度。

2024-06-01 20:55:50 471 3

原创 未见过类型题每周总结(个人向)

因为有三个限定条件,只设dp[i]表示前i个数的乘积得不到方程,所以设d[i][j]表示在前i名学生中选出j名学生,其中第j名学生必选所获得的乘积最大值又因为数据中可能存在负值,所以在计算负值的乘积时要找到前面的最小值,所以设p[i][j]表示在i名学生中选出j名学生。最后返回max(d[k][k]~d[n][k])。其中第j名学生必选所获得的乘积最小值d[i][j]=max(arr[i]*Math.max(d[prev][j-1],p[prev][j-1]))如果arr1[i]!

2024-05-25 18:17:29 383 5

原创 简述MyBatis中#{}引用和${}引用的区别

总的来说,#{}的用途更加广泛,也更加安全,它们俩的区别概括一下也就三个点:1.#{}有预编译${}无预编译2.#{}写入参数是占位的方式不会被SQL注入,安全,${}是直接以字符的形式写入参数,会被SQL注入,不安全。3.一般情况的SQL#{}都能完成,但是对于一些特殊场景比如排序,字段名作为参数等情况需要使用${},但是也要注意使用方法。

2024-05-23 19:26:44 2169 4

原创 MyBatis动态SQL的使用

MyBatis的动态SQL像是JavaScript语言,但是我们还是很容易去理解的,毕竟计算机语言逻辑是互通的。动态SQL在日常开发中还是经常遇到的,所以我们程序猿要好好掌握呀!如果想偷懒建议大家去了解一下MybatisGenerator工具,可以自动生成sql的XML文件。那我们今天的学习旅程就到这啦,咱们下期再见!!!制作不易,望各位大佬赏个脸,给个三连吧!!!!

2024-05-21 19:24:01 963 16

原创 简述MyBatis的XML实现方法(附带注解方式实现方法)

XML和注解的本质都是写一个接口,然后告诉MyBatis这个注解需要实现说明样的功能,关键信息是什么,MyBatis就会配合Spring帮我们实现这个方法供我们使用,这真的比原生JDBC好用许多,这也体现了封装的优越性,让我们省去了建立连接,关闭连接等各种重复又繁琐的操作。总的来说一段话来形容MyBtis“如同天上降魔种,真是码界太岁神!!!这个MyBatis,(制作不易,望各位大佬赏个脸,给个三连吧!!!!

2024-05-20 12:37:17 1264 13

原创 详述Java中JVM那些不为认知的秘密

JVM的原理最主要的就是上述内容,当然虽然是最主要的但是也只是冰山一角。如果真的想要了解可以去看看OpenJDK的源码,或者可以看看《深入理解Java虚拟机》这本书。制作不易,望各位大佬赏个脸,给个三连吧!!!!

2024-05-19 19:36:02 1224 16

原创 未见过类型题每周总结(个人向)

一个动态规划问题,一般两个数组的,我们就让i表示前第一个数组的前i项,j表示前第一个数组的前j项,那么dp[i][j]表示当前情况下的最大公共子序列的大小。这题的思想是递归,一般二叉树的思想都是递归,或者动态规划,我们可以把一个根节点看作一层,然后求其根节点左串最大的和,再求其又串最大的和,然后把这两个数和0比较,如果大于0就加到根节点上,然后设置一个全局变量为最大的总和,每次都把某个根节点及左右节点的最大和算出和这个变量比较,这个变量取最大值即可。

2024-05-18 22:40:03 909 1

原创 详解依赖注入的三种方法以及遇到问题的解决

spring的依赖注入(DI)最主要的就是上述内容了,如果有缺漏,请各位大佬多多担待,可以在评论区补充一下哟!!!制作不易,望各位大佬赏个脸,给个三连吧!!!!

2024-05-13 21:46:02 2341 10

原创 浅谈@Controller注解和其他四大注解的区别

这五大注解虽然本质都差不多,注意一下@Controller的使用即可,但是大家还是尽量要根据实际场景来使用,这样不仅能让我们的代码更加清晰明了,还能让我们更好地去开发一个项目。制作不易,望各位大佬赏个脸,给个三连吧!!!!

2024-05-12 21:47:57 937 10

原创 漫谈ApplicationContext和BeanFactory的区别

这串代码就是SpringBoot的启动类,使用@SpringBootApplication修饰。其中这串代码会让Spring Boot自动扫描并加载所有带有特定注解的类,并自动配置应用程序所需的各种组件。这也就是Spring Boot应用程序的入口,就类似于我们平时写的main入口或者是多线程写的run方法的入口,都算是回调函数。

2024-05-12 19:15:18 1119 7

原创 未见过类型题每周总结(个人向)

那么综上所述我们只要知道最大的数是否能和其他数匹配就行,但是问题来了,怎么知道它们是否匹配呢。那怎么判断是否为2的n次方呢,这里有三种方式,一种是暴力求法,让这个数无限/2,%2即可,第二种是lowbit算法,判断x-(x&-x)是否为0,第三种就是之前做过的判断1的位数的位运算方法,因为我们只需要判断是否只有1位1,所以,判断x&(x-1)是否为0即可。我们要计算矩阵内部的和,有两种方法,一种是暴力解法,用两层for循环来一个一个加起来,但是这样时间复杂度就是O(n^2)加上外部循环就是 O(n^6)。

2024-05-11 22:39:47 404 1

原创 浅谈Session和Cookie

Cookie和Session是HTTP协议中很重要的功能,它们实现了客户端与服务器之间的信息交互。制作不易,望各位大佬赏个脸,给个三连吧!!!!

2024-05-07 19:13:34 708 11

原创 未见过类型题每周总结(个人向)

因为每一次求dp[i][j]都只需要它的上一行第j个前的数据,所有我们可以只准备一个数组,从后往前填值,就可以了。这一题是一个线性dp问题,我们设dp[i][j]为在前i个物品内挑选,体积为j时能承载的最大重量。

2024-05-04 19:17:38 377

原创 Linux系统中ll 与ls -l 的区别

我们可以看到ll指令的内容更加详细,他会把隐藏文件以及上级本级目录也显示出来,但是ls -l只会显示普通的文件(广义,包含文件夹)。

2024-04-28 16:45:45 540 1

原创 未见过类型题每周总结(个人向)

我们设卖出价值为c,卖出x个一号礼包,y个二号礼包。则c=ax+by,那么就可以一一枚举,x的最大值为min(a/2,b),则y就为min(a-2*min,(b-min)/2)。

2024-04-27 22:42:50 438

原创 https协议的加密方式详解

虽然经过上述内容的加密,对我们日常生活来讲已经非常的安全了,但是这也不是绝对安全的,还是有大佬黑客能破解这些,就是成本问题。所以大家还是要注意自己的隐私不要被窃取,浏览器弹出风险提示也不要点击,或者可以用模拟机点开这个网页,避免关键信息的泄露。!!

2024-04-21 22:23:30 1135 13

原创 未见过类型题每周总结(个人向)

这是一个广度优先搜索问题,我们可以先找到所有的烂苹果,把它加入到队列中,然后再同时让这几个苹果向外面腐蚀,我们可以用一个boolean数组来表示是否被腐蚀,也可以直接在原数组中将这个位置标为2。然后再将这个数加入到队列中即可,当队列为空时就代表没有可以腐蚀的苹果了。这里有一个小细节,不管这轮有没有腐蚀苹果,我们的时间都会加一,所以到最后的时候,必定没有腐蚀,就多加了一次时间,返回结果时就可以返回原时间减一。逆序之后再建立一个新的链表把它根据竖式加一起,最后因为结果是逆序的,所以我们再逆序一下就好了。

2024-04-20 21:56:54 299 1

原创 TCP的一些功能详述

TCP全称传输控制协议(Transmission Control Protocol)。它是传输层的协议。TCP拥有以下属性:。1.TCP是有连接的2.TCP是可靠性传输3.TCP是面向字节流的4.TCP是全双工的TCP协议相较于其他协议来讲最主要的是实现了一个非常可靠的传输。以下图中很大一部分的空间都是为了实现可靠传输。那接下来我们开始了解TCP吧!TCP真的是一个值得深究的协议,在RFC中对他制定的规则有80多页,我讲的虽然是重点但是也只是冰山一角。!!!

2024-04-17 19:17:27 2871 12

原创 多线程进阶一些方法的使用(ReentrantLock,Semaphore,CountDownLatch,Conllections,写时拷贝和ConcurrentHashMap)

目录1.ReentrantLock(可重入锁的使用)2.信号量semaphore的使用 3.CountDownLatch的使用4.线程安全的集合类 5.写时拷贝顺序表CopyOnWriteArraylist 6.ConcurrentHashMap的使用和理解ReentrantLock是可重入锁,有的兄弟们可以会问,明明我们已经学了一种可重入锁synchronized了,我们为什么还要学习ReentrantLock呢?这是因为虽然它是Java的远古产物,但是Re

2024-04-11 13:40:11 1124 5

原创 Java中线程池的使用及原理(附带线程池拒绝策略介绍)

这里我们要参考逻辑核心数,逻辑核心数越多,相同情况下线程数也就越多,但是我们还是不好确定线程的数量,网上有说是逻辑核心数的某某倍的,实际上是错的,线程我们必须通过实践去得出最佳数量。因为一个线程的代码执行有两大类,一种是CPU密集型,一种是IO密集型,因为CPU操作相对于IO操作快了很多,所以在执行IO操作的时候CPU相对来讲是有很长的等待时间的,所以就会出现核心休息的情况,假设全都是CPU密集型代码那么线程数就必须等于逻辑核心数,若不是则可以大于逻辑核心数,我们一个代码不可能全是CPU密集型或是IO密集型

2024-04-10 17:23:30 1235 5

原创 synchronized(锁)的使用和死锁问题

2024-04-08 22:29:04 1274 5

原创 线程和进程的关系

我们可以知道,进程是资源分配的基本单位,而线程是调度执行的基本单位。

2024-04-05 17:13:47 487 7

原创 KMP算法精致教程(附带Java和c的代码)

但如果j与k不相同,那么就会走到上一个k的位置也就是next[k]。我们现实生活中少不了字符串的查找,比如我们在搜索的时候,我们输入的字符串需要和系统匹配然后才能得到我们想要的结果,那么匹配我们想要的字符串呢?我们把下面那一排叫做next数组,看图发现,其实第j个字符如果和若未匹配上返回的j值(next[j],设为k)下标k的字符相同,那么第j+1个未匹配返回值就是k+1。那这样我们就可以从字串中找规律,当j不匹配时最佳的下一个j位置就可以找到(找到和j前面的字符串的后缀相同的前缀的下一个字符下标)。

2024-03-12 20:59:42 589 4

原创 简单了解break与continue(C语言)

分别指的是结束循环或结束分支结构,和从当前位置跳过本次循环,继续接下来的循环。break大概可以表达为我们发奋学习到第五天就坚持不下去了,就不学了,但是continue只是休息了一天,接下来继续学习,天数照样会加一。我们原意输入的是想知道星期二该干什么,结果他输出却不尽人意,输出了2,3,4,5,default的所有结果。怎么解决呢,这时候我们就想到了break,我们在每一个case执行完之后都加一个break,那么就会直接跳出switch循环。

2024-03-04 16:56:01 570 1

原创 找单身狗(两只)的两种解法

我们可以让原来的数组相互异或,得出单身狗相互异或的值,然后对这个数与1按位与然后和1相互比较,每次1向左移位1步,我们就把1这个变量设为i,如果结果还为i,那么就能得出i的值,再拿这个i值和数组中的数想与,就能分出数组中在这位上同和不同的数。知道方法后我们便开始尝试从数组1,2,3,4,5,1,2,3,4中找出5。找出数组1,2,3,4,5,6,1,2,3,4中的两只单身狗,单身狗是指数组中的只出现过一次的数字。从只有一个单身狗的数组中找到单身狗的方法我们已经发现。运行后我们可以看到代码工作正常,完工!

2024-03-03 20:03:45 772 3

原创 写一个自己的qsort函数

如上图所示我们只要改变原冒泡排序中下面两个箭头所指向的代码就好了,但是我们并不知道它要我们排序什么类型的数组,所以我们需要知道这个类型数组中元素的大小,并且我们需要使用函数者提供一个判断函数是否交换位置的函数,返回类型为int。平时我们最常接触的就是一个数组的排序,我们以int型为例,要把arr={10,9,8,7,6,5,4,3,2,1}这个数组中的数字以升序排列,我们就要用到一系列的排序方法,本篇文章采用冒泡排序。这样我们再调用它整个通用的冒泡排序就写好啦!可以见得我们代码写的很成功!

2024-03-02 17:38:08 687 5

原创 C语言用scanf函数用Ctrl+z或c无法返回EOF的问题解决

在接收到ctrl+z字符后scanf函数内部可能需要再接收一个ctrl+z指令执行ctrl+z字符,才能返回EOF,而%c本就能就收字符,所以只需要输入2个ctrl+z。那为什么猜测ctrl+z是字符呢,是因为我用getchar函数来接收他的值,发现只用输入一次就可以输出EOF,但是也许函数内部已经定好把ctrl+z转化为EOF,所以不敢肯定ctrl+z的字符型参数一定为-1。在vs中ctrl+c也是让scanf返回EOF的,但是有时候我们会发现以下代码会出现以下错误。这时我思考如果是两个%d呢?

2024-03-01 19:48:50 710

原创 如何写出一个自己的简单扫雷游戏

游戏函数就有些麻烦了,如何实现表面不显示雷,但后台有雷,并且实现标记位置功能呢?此时我们就想到要建立两个二维数组,然后一个二维数组显示表面,当我们走出一步时,查找另一个二维数组所选位置是否为雷。当然,youxi里各个函数都需要实现,由于篇幅原因,我将不一一赘述。玩家看到界面之后肯定会选择1,2,0之中的一个数字,所以我们要将这几个选项的功能分开。玩过游戏的大家都知道,一般在20年代前的游戏刚进入时都会有一个选项界面。这就是这个游戏的主体逻辑,此时的youxi函数和shezhi函数都只是一个空壳。

2024-02-29 00:48:09 546

原创 开启计算机之旅

一些刚开始入门计算机小白的话语。

2024-02-26 15:15:58 197 1

空空如也

空空如也

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

TA关注的人

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