自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【算法题】LeetCode-硬币划分问题-(动态规划、斜率优化、空间压缩)

硬币划分问题-斜率优化-空间压缩

2021-12-13 22:22:16 2198 25

原创 截止目前为止,我遇到的最难的一道算法题:计算相邻两个数的最大差值

相邻两个数的最大差值

2021-12-10 15:59:49 3455 30

原创 2019年京东面试题-洗咖啡杯问题【贪心和动态规划】

京东2019年面试题—冲咖啡和洗咖啡杯问题题目描述:首先,给你几个数据:数组arr:表示几个咖啡机,这几个咖啡机生产一杯咖啡所需要的时间就是数组中的值,例如arr=[2,3,7]就表示第一台咖啡机生产一杯咖啡需要2单位时间,第二台需要3单位时间,第三台需要7单位时间。int N:表示有N个人需要用咖啡机制作咖啡,每人一杯,同时,假设制作完咖啡后,喝咖啡时间为0,一口闷。int a:表示用洗碗机洗一个咖啡杯需要的时间,串行运行。int b:表示咖啡杯也可以不洗,自然晾干的时间。咖啡

2021-11-15 21:44:23 1835 22

原创 5千字长文,深度总结HashMap底层实现&面试题【收藏】

哈喽,大家好!!!今天的主题:HashMap反观整个Java的集合框架,我们讲了ArrayList、LinkedList、Stack、Queue、Deque、PriorityQueue等等集合,以及它们背后所对应的数据结构,今天我们来看一下java集合中,最为重要的,也是最常用的一个集合:HashMap。它的重要性,毋庸置疑,网上随意找一篇面经,几乎都会问到HashMap的底层实现、哈希冲突该怎么办?…… 这里我们就不细说了,直接进入主题。文章目录一、认识HashMap二、哈希函数1、哈希函数的概念2

2021-11-03 17:59:13 1099 13

原创 2023年码蹄杯省赛第三场 第12题 3D眩晕【字符串哈希+二分】

哔哩哔哩 视频讲解:https://www.bilibili.com/video/BV1Wb4y1K7va/

2023-12-02 19:15:04 980

原创 蓄水池抽样算法

假设要等概率抽10个球,那么 1~10号球,百分之百能被选中,假设现在 来到了 第 i号球(i>10),那么第i号球被选中的概率就是 10 / i,而对于 已经被选择的10个球中,每一个球都有1 / 10的概率被 第i号球替换掉,所以已经被选中的10个球,在第i号球到来的时候,都有 1 / i 的概率被替换掉,那么也就是有 10 / i 的概率存活下来。:在一个源源不断的数据流中,会吐出带有编号的球,现在问你 在不知道具体有多少个球的情况下,如何。

2023-09-25 19:08:26 183

原创 LRU、LFU 内存淘汰算法的设计与实现

LRU、LFU都是内存管理淘汰算法,内存管理是计算机技术中重要的一环,也是多数操作系统中必备的模块。应用场景:假设 给定你一定内存空间,需要你维护一些缓存数据,LRU、LFU就是在内存已经满了的情况下,如果再次添加新的数据,该淘汰哪些数据来留出新数据的内存空间???

2023-09-25 16:11:33 702

原创 刷题常用算法模板(持续更新)

常用的算法模板

2023-05-31 11:26:44 1712 12

原创 Mybatis-增删改查

Mybatis是属于持久层(DAO层)的框架,它封装了很多JDBC的很多操作细节,让开发者大大简化了DAO层的代码。在2010年从iBatis改名为Mybatis。中文官网:https://mybatis.org/mybatis-3/zh/getting-started.html。

2023-04-10 16:28:22 925 3

原创 ajax技术和跨域问题

ajax技术

2022-10-24 08:55:35 338

原创 【计网】(六)传输层(TCP、UDP、可靠传输、流量控制......)

传输层有两大协议:TCP和UDP。主要掌握TCP,这也是面试的高频考点。TCP和UDP的区别如下:UDP:用户数据报协议。它是的,所以减少了的开销。UDP是尽最大能力进行交付,它不会保证可靠性,换句话说:它会一直传输,但是它并不保证这个数据能否成功传输到目的设备。所以UDP的首部字段比较简单,如下:源端口号、目的端口号,这都没什么好说的。指的是这个数据来自(去往)系统的某个端口。UDP长度:指的是这个数据段的长度,也就是首部 + 数据部分。单位字节。UDP校验和:为了保证这个数据段到达目的地后,数据是完好的

2022-08-25 16:27:26 3061 12

原创 【计网】(五)网络层首部

网络层首部

2022-08-07 21:28:52 1443

原创 【计网】(四)物理层、数据链路层

介绍物理层和数据链路层

2022-08-03 21:41:56 3044

原创 【计网】(三)超网、路由、NAT协议

超网、静态路由配置、NAT协议

2022-07-17 21:49:47 1953 9

原创 【计网】(二)MAC地址与IP地址

MAC地址和IP地址

2022-06-28 17:58:41 4964

原创 【计网】(一) 集线器、网桥、交换机、路由器等概念

计算机网络基础概念一

2022-06-26 18:31:38 4110 20

原创 【算法题】LeetCode691、贴纸拼词(剪枝+记忆化搜索)

帖纸拼词问题(剪枝+记忆化搜索)

2022-06-24 15:52:23 779 3

原创 【MySQL】数据库的事务和MySQL隔离级别分析

hello 大家好!今天来聊聊关于数据库事务的一些事情。说到事务,我相信大家应该都不陌生,多多少少也知道其中的一些事情。今天着重聊聊MySQL中事务的隔离级别。上车上车……文章目录一、什么是事务?二、MySQL中的事务和隔离级别1、 读取为提交内容(Read Uncommitted)2、 读取已提交内容(Read Committed)3、 可重读(Repeatable Read)4、 可串行化(Serializable)一、什么是事务?事务指的是逻辑上的一组操作集合,组成这组集合的各个单元,要么全部

2022-04-09 00:34:03 1444 25

原创 【MySQL】MySQL中常用的函数

相信大家在做一些SQL的代码题时,看题解,很多都用到了MySQL中自带的库函数,今天就来简单说一些MySQL中的常用函数,用起来也是很简单的。 1、控制流程函数(等价于if else语句)2、字符串函数3、数值函数4、日期函数5、位运算6、聚合函数(组函数)1、控制流程函数(等价于if else语句)控制流程函数,其实就是我们平时写Java代码中,所使用的if else语句。只是这里的写法稍微有点不一样而已。如下:-- 用法case 参数名 when 比较值 then 执行操作 when 比

2022-04-07 17:40:23 1342 17

原创 【软件测试】性能测试工具基础-loadrunner12+jmeter

上期文章,我们讲了基于python的selenium,用于做自动化测试。今天就简单说一下性能测试方面的一些知识点。文章目录一、性能测试相关概念二、loadrunner基本使用1、创建工程2、录制脚本3、回放脚本4、增强脚本1)检查点(断言)2)读取参数、输出函数以及自定义变量3)事务4)参数化5)关联6) 集合点7)block块技术5、controller控制器的使用6、analysis分析三、jmeter基本使用1、jmeter中的术语2、jmeter代理录制脚本3、增强脚本1)检查点2)事务3)CSV

2022-03-07 19:36:01 15844 12

原创 【数据结构】数组区间更新-IndexTree(树状数组)

在嵌段时间,我们介绍过线段树,线段树是解决在数组区间上进行快速的增删改查操作。而今天我们讲得IndexTree也是为了达到这样类似的效果。一、介绍例题:给定一个数组arr,arr的长度是1000,现在问你如何快速的计算500 ~ 1000之间,所有的数的累加和??可能你会说直接一个for循环,从500开始累加不就行了吗? 这样确实可以达到目的,但是还是不够快。又或许,你会想到用前缀和数组,先计算每一个index,从0下标一直累加到index位置。这样一个前缀和数组,也是能达到相应的效果。如下:

2022-02-18 16:50:35 1076 26

原创 【数据结构】数组区间更新-线段树

例题:LeetCode699掉落的方块

2022-02-05 11:40:53 1525 10

原创 【CSS】总结前端三剑客之一(CSS基础)

上一篇文章,我们介绍了HTML语言的基础用法后,今天我们继续学习CSS的基础语法。CSS,又称为层叠样式表(Cascading Style Sheets)。CSS能够对网页中元素位置的排版进行像素级精准控制,实现美化页面的效果,能够做到页面的样式和结构分离。文章目录一、基本语法规范二、选择器1、基础选择器2、复合选择器三、常用属性1、字体属性设置字体字体大小字体粗细文字样式(倾斜字)2、文本属性文本颜色文本对齐文本装饰(下划线、上划线、删除线)文本缩进行高3、背景属性背景颜色背景图片背景平铺背景位置背景

2022-01-29 16:40:38 1810 9

原创 总结前端三剑客之一(HTML基础)

今天我们来学习前端三剑客之一(HTML),在讲解HTML之前,我们需要先了解前端三剑客是什么,分别又有什么作用呢?前端三剑客指的是HTML、CSS、JavaScript,这三门语言。目前大多数网站的前端都是由这三门语法写的,他们之前相互搭配进行使用,就能够显示出很多丰富的效果。而他们三者的作用就像是这样的:HTML,像骨头一样,撑起了整个页面的大致框架,比如左边需要一个输入框,右边需要一个按钮之类的,都可以用HTML来实现。CSS,而HTML实现出来的样式比较单调,CSS就是为它进行“化妆”的,也就

2022-01-25 18:01:30 6986 7

原创 【软件测试】总结web自动化测试-selenium+python

selenium自动化测试

2022-01-22 16:27:40 2549 17

原创 【经典面试题】无序数组中,求第K大的数(堆、荷兰国旗问题、bfprt算法)

bfprt算法

2021-12-30 21:50:17 2629 9

原创 【MySQL数据库系列】二、MySQL数据库增删改查(聚合查询、多表查询)

上次我们讲了数据库的创建和删除,还有一些没讲完的限制,本文我们就一起讲了,然后开始讲数据库的增删改查操作,涉及到基本的增删改查和聚合查询、多表查询等。都算是比较难的知识点,多敲敲代码。前期文章:【MySQL数据库系列】一、认识数据库、建库建表操作MySQL基本操作思维导图GitHub链接文章目录补充上一篇文章的部分内容一、插入操作二、查询操作1、全列查询2、指定列查询3、表达式查询4、去重5、排序(重点)6、条件查询(重点)7、模糊查询8、分页查询三、修改操作四、删除操作五、聚合查询1、聚合函数2、

2021-11-27 23:13:40 4775 25

原创 【MySQL数据库系列】一、认识数据库、建库建表操作

文章目录一、初识数据库二、MySQL基本数据类型三、MySQL基本逻辑运算符四、“数据库”的基本操作五、“表”的基本操作一、初识数据库数据库:能更有效的管理数据,数据库可以提供远程服务,也就是说可以通过远程连接来使用数据库,因此也称为数据库服务器。我们所说的数据库,整体是分为两个部分的,一个是客户端,一个是服务器。客服端就是我们敲命令的那个窗口,或者是一个图形化界面这样的程序,就是客户端。它只是起到一个作用,就是将我们输入的命令发送给服务器,并且接收服务器返回的数据。服务器,就是接收由客户端发送过来的

2021-11-21 16:17:18 4057 19

原创 Windows命令行终端配置

配置Windows命令行背景你的命令行是这样的???或者是这样的???是不是看着背景太单调了???那你再看看我的:话不多说,直接干!!!将原先的默认终端应用程序改为Windows Terminal然后关闭当前命令行窗口,再次打开命令行窗口,就会是这样:跟原先的命令行窗口不一样的是,这里有一个向下的箭头,点击它。上图,设置背景图片即可。可能设置之后,命令行的字体,有些看不清楚,此时只需调整背景的透明度即可,如下:微软官方手册官方手册里有更多的讲解,其他的操作,大家可自行

2021-11-13 16:13:20 3084 10

原创 浅析Java中的泛型

hello !大家好!今天的主题就是:泛型。在使用集合类时,大家就已经接触到泛型了,那就是每个集合类后面的尖括号<>,这样一对尖括号,在java中就称为泛型。那么泛型这一个点,我们又该知道多少呢?我们往下看!文章目录一、泛型的使用二、泛型类的定义-类型边界三、类型擦除四、泛型类的使用-通配符五、泛型方法六、泛型的限制一、泛型的使用前面我们学集合的时候,简单的说过泛型的使用。如下:ArrayList<Integer> list = new ArrayList<>(

2021-11-07 15:45:28 1338 8

原创 常考排序算法之归并排序

前几天,我发布了一篇快速排序的帖子,今天我们还是围绕着排序这个话题,继续讲解第二热度的归并排序。归并的递归版本非常的简单,非递归版本的可能稍微要难一点点,但是,不要怕,这都是小问题。我们直接开干!!!前期文章:八大排序算法总结深入理解快速排序以及优化方式一、递归版本归并排序的思想:将给定的数据,等分为两部分,分别递归调用函数,使这两部分有序。然后再将这左右两部分的数据进行合并,使其有序。这就是归并。如上图,递归调用绿色部分,使其有序后,再调用蓝色部分,使其有序后;再将二者进行合并,且还是有序的

2021-10-29 15:50:11 488 9

原创 深入理解快速排序以及优化方式

可能经常看面经的同学都知道,面试所遇到的排序算法,快速排序占主要位置,热度只增不减啊,其次就是归并和堆排序。其实以前写过一篇排序的文章,写的比较简单,只是轻描淡写。今天我再次重新拿起笔,将快速排序的几大优化,再次一一讲述一遍。各位同学,读完这篇文章,如若对你能够带来一些感悟,记得给个大大的赞哦!!!前言快速排序是在冒泡排序的基础之上,再次进行优化得来的。具体的步骤如下:在待排序的序列中,选取一个数值,将大于它的数放到数组的右边,小于它的数放到数组的左边,等于它的数就放到数组的中间。此时,相对于

2021-10-26 15:34:23 715 14

原创 竞赛最好用的平衡树-Size Balanced Tree(SBT)【建议收藏】

大家好。前段时间我更新过AVL、红黑树以及搜索二叉树的简单讲解。今天我们还是围绕着平衡树的话题,来讲解一个很牛逼的平衡树结构。这种结构是我国的一位大牛:陈启峰。在2006年,他还在读高中阶段,所发明的一种平衡树结构,叫Size Balanced Tree(SBT),根据节点的个数,来调整平衡性。一直到今天,这种平衡树结构,在算法竞赛领域是非常常用的,虽然SBT的时间复杂度跟AVL、红黑树这些平衡树一样,但是SBT是比较好写,比较好改的。所以在算法竞赛时,是最常用的一种算法。陈启峰SBT论文(译)本期文章

2021-10-24 08:58:38 3173 12

原创 进阶JavaSE-PriorityQueue优先级队列

大家好。好久不见,今天我们接着上次讲完List接口以及List底层所实现的一些容器。今天我们来讲一下Java中的另外一个容器:优先级队列!这个容器,底层是一个堆,那么具体什么是堆?什么是优先级队列?我们往下看!!!一、堆的概念堆,实则就是一颗二叉树的抽象,堆在底层实现,是用一个数组来存储数据的。堆有两种:大根堆小根堆大根堆:在一颗二叉树中,堆顶的元素是整课树中最大的,对于每颗子树而言,也是如此。小根堆:在一颗二叉树中,堆顶的元素是整棵树中最小的,对于每颗子树而言,也是如此。上图就是两种堆

2021-10-22 17:12:19 1390 12

原创 进阶JavaSE-三大接口:Comparator、Comparable和Cloneable。

进阶JavaSE-三大接口:Comparator、Comparable和Cloneable。Comparable和Comparator这两个接口很相似,都是用于比较大小的接口。在我们写一些数据结构的算法题时,用的比较多,具体是怎么用的,我们接着往下看。Comparator接口:public interface Comparator<T> { public int compare(T o1, T o2); //比较方法}Comparable接口:public interfac

2021-10-12 17:22:28 474 7

原创 【算法题】不用做任何比较,返回两个数中的最大值!

hello!今天我们来看一道算法题!!!在线OJ链接给定两个数,不做任何比较,返回最大值。分析:我们都知道1乘以任何数,得到的是它本身;0乘以任何数都是得0。根据这个性质啊,我们就能够做出一些事情来。题目既然给了两个数,我们将两个数相减,假设被减数是a,减数是b。a-b肯定会得到一个正数或者负数。如果是正数,说明a比较大,反之就是b比较大。然后我们就将这个结果进行处理,如果是负数,我们就让他等于0;如果是正数,我们就让他等于1。再将这1或者0,去乘以a或者b。肯定有一个得到他本身,另外一个得到0,

2021-10-07 12:18:59 1075 10

原创 进阶JavaSE(一)- List、栈、队列

在前面,我们讲完了JavaSE的基础语法部分,现在我们就来开始学习JavaSE最后很重要的一部分:集合。这一块,面试官也会经常问到,比如JDK1.8后,HashMap底层是如何实现的…… 话不多说,我们来看一下今天的主题:List。 在讲解List之前,我们先来看一下JavaSE集合的大致框架,分别包含了哪些集合,以及每个集合背后所多余的数据结构是什么。以上全部就是JavaSE中的所有集合,后面的文章都是围绕这张图进行讲解。前期文章:前言- IDEA如何配置?让你敲代码更轻松!初识Java语言

2021-10-06 16:19:37 1067 14

原创 遍历二叉树的神级方法-Morris遍历【建议收藏】

在前面,我们简单提及过二叉树的遍历方式,有递归和非递归两个版本的遍历。仔细想一想,不管是递归的,还是非递归的遍历,两种版本的遍历都是需要耗费大量的、额外的空间。比如当我们二叉树的高度有100层,那么递归时,系统就会一直压栈,一直要压入100次遍历的递归函数,因为此处的空间复杂度是跟这可二叉树的高度相关的。所以有人就在想,有没有什么方式,能够使这个空间复杂度再压缩一点呢?前期文章:二叉树的非递归遍历本期文章源码:GitHub有,肯定是有的。那就是今天的主题:Morris遍历。这种思想就能使二叉树的遍历

2021-10-04 11:53:54 2185 19

原创 最长回文子串问题-Manacher算法【建议收藏】

前面我们讲过一个关于字符串的算法:KMP算法。今天我们来讲另外一个字符串算法:Manacher算法。这个算法是用于解决一个问题叫:最长回文子串。前期文章:KMP算法牛客网OJ链接说的简单一点,给定一个字符串,返回的值是这个字符串的最长回文子串的长度。顾名思义,即是回文串,也是子串。文章目录一、BF算法二、Manacher算法一、BF算法那上图的示例2为例:abc1234321ab。最简单的思路就是从左到右遍历每一个字符。每来到一个字符位置,我们可以向左右两边进行扩展,分别比较左右两边的字符。

2021-09-26 19:12:45 822 16

原创 初识Java语言(八)- 异常

在前期所有的文章中,我们都是假设用户输入的参数都是有效的,自己写的代码都是没有bug的。但是在现实生活中,这并不实际。比如:登陆某一个账户,密码错误或账号错误等等,如果确实是错误了,应该向用户提示这类信息,并在密码错误后,应该进行适当的处理。所以出现了异常。使用异常应该做到以下几点:向用户通知错误保存所有的工作允许用户妥善地退出程序对于异常情况,例如,可能造成程序崩溃的错误输入,java使用了一种称为异常处理的错误捕获机制。具体到底是什么?我们往下看!!!前期文章前言- IDEA如何配置

2021-09-25 09:07:48 462 12

空空如也

空空如也

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

TA关注的人

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