自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HTTP超文本传输协议详解

下图为请求www.baidu.com查看请求报文格式(打开浏览器点击F12,接着点击network,访问www.baidu.com,在弹出的所有请求中找到www.baidu.com,点击后打开标头,里面有响应标头(响应报文)和请求标头(请求报文),点击请求标头后点击原始选项即可查看原始请求标头数据)当我们想要获取一个完整的网页,通常需要客户端浏览器向服务器发送多次请求,例如,可以打开浏览器并按F12,并选择Network,此时当我们访问www.jd.com时,可以看到非常多的请求,请求头信息(请求头);

2024-09-11 17:18:51 655

原创 MySQL运维:日志,主从复制,分库分表,读写分离

当主库数据发生变更时,会将所有的变更写入到binlog二进制日志中,从库中的IOthread线程会请求连接主库,主库将binlog发送给从库,从库将binlog中的内容写入Relaylog中继日志,SQLthread读取中继日志中的SQL并执行,从而保证了主从数据一致性,能够实现读写分离,增删改的请求走主库,查询的请求走从库,降低单库的压力。开源的,活跃的,基于Java语言编写的MySQL数据库中间件。每个库的表结构都一样,每个库的数据都不一样,所有库的并集是全量数据(每个库存储相同表的不同记录)。

2024-08-16 14:40:27 1216

原创 mysql基础:常用SQL语句分类总结,约束,多表查询以及事务详解

SQL语句不区分大小写,分号结尾,SQL语句中可以插入任意换行和空格,可以调整SQL语句以美观。[]中是可选的参数创建新数据库若加上可选项if,若存在则不创建,若不存在则创建,如果不加if,且数据库已存在,则报错。if操作作用同上2.表级别操作表创建删除表删除指定表,并重新创建该表这个命令可以删除表中的全部内容重新创建一个空表,保留了原表的字段修改表字段的数据类型修改字段名和字段类型删除字段修改表名二.DQL(数据查询语言)1.数据库级别查询查询当前数据库所有表

2024-08-08 12:05:29 1231

原创 大顶堆,小顶堆结构添加,移除元素过程以及源码分析(Java)结合LeetCode347(前k个高频元素), 215(第k大的数), 295(数据流的中位数)

结合上图来看,加入我们要找数组中第7小的元素,若此时,我们要插入一个元素8,当前要插入的位置的父节点开始比较(由于Java源码中大小顶堆是数组实现的,故上图要插入的位置应该是1的左子节点),故要插入位置的父节点是1,8 > 1,故此插入位置不满足父节点比子节点大,继续找1的父节点4,仍然不满足,故找4的父节点9,发现满足,所以应该将8插入9的左节点位置。由于我们要找第7小的数,所以我们要维护一个大小为7的大顶堆,此时大顶堆的大小为8,所以我们要删除大顶堆的最大元素,即根节点。

2024-08-08 11:26:00 1223

原创 LeetCode11.盛水最多的容器白话解释

这道题使用双指针,Left初值为0,right初值为length-1,然后不断地比较两指针位置值的大小,小的向中间移动,若相等则移动哪一个都可。

2024-08-02 18:58:01 117

原创 leetcode49.字母异位词分组

接着从头到尾遍历单词数组即可,若哈希表中没有当前单词的异位词,即不存在排序后的字符串的键,则添加键值对,若存在异位词,则将当前单词添加到List中,最后返回哈希表的值组成的List即可。我们可以定义一个哈希表,键是String类型,用来存储每个排序后的单词,显而易见排序后的异位词具有相同的键,值则为List类型,存储单词本身即可。此题很直观要用哈希表来解决,因为要记录已经遍历过的所有单词。

2024-07-24 22:43:33 274

原创 leetcode 84. 柱状图中最大的矩形

可以看出,如遇到更短的柱子,会在以更短的柱子为基准的情况下去讨论,在以2为基准的时候,若横向延伸,将1包含在内,讨论的情况将会与以1为基准的情况重复,是没有必要的,一旦延申包含更短的柱子,高度就会以更低的柱子为基准,所以我们以每个柱子为基准,这样能够减少重复的情况。当我们以数组中的每一个柱子为基准的时候,去计算在左右两侧不包含比自己短的柱子的情况下的最大面积,这样就可以把所有有可能出现的最大面积都遍历一遍,其他的情况是没有必要遍历的。代码还有优化的空间,时间复杂度打败94%的代码。

2024-07-24 16:54:10 425

原创 lc41寻找缺失第一个的正数解法超详细解释

首先需要明确的是,缺失的最小正整数一定出现在[1, nums.length+1]范围内,若数组中包含[1, nums.length]的数字,此时数组若排序则是[1, nums.length]连续的,则缺失的最小正整数为nums.length+1,其他情况(即数组排序后不连续)的最小缺失正整数均在[1, num.length]范围内。1.第一次遍历整个数组,将nums[i]放在nums[i]-1的索引处,即映射关系是num[i] = i + 1。

2024-07-20 17:46:16 279

原创 Java中的值传递和引用传递

引用数据类型同样可以理解为值传递,传递的值是对象的地址副本,由此我们可以得出结论,我们在方法中使用引用数据类型参数修改对象内部的成员变量,会在内存中找到对象的地址,接着进行修改,这时在方法内部的修改会在外部也有体现,因为这种方式直接修改的是对象的内容。引用数据类型和基本数据类型是Java中两种不同的数据类型,基本数据类型中存放的是值,引用数据类型存放的是对象在内存中的地址,引用数据类型本身的概念类似于快捷方式,他不存储数据本身的内容而仅仅存储地址。修改内容是会真实体现在对象上面的。

2024-07-20 15:13:30 577

原创 Java中的Lambda表达式

在Java8中新增了Lambda表达式,允许使用更简洁的代码创建只有一个抽象方法的接口(函数式接口即只有一个抽象方法的接口,通常用@FunctionalInterface注解)的实例,用于向方法中传递参数,听着可能比较抽象,可以看一下下面的例子。从上面的例子可以看出,当一个方法将一个函数式接口作为参数时,可以使用Lambda表达式简化代码。

2024-07-17 13:55:48 475

原创 LeetCode560.和为k的子数组

2.不断地统计前缀和,下一步该统计的是0位置的3,sum=3。此时计算HashMap中是否包含(sum[0]-k=0)的键,发现包含,且个数为1,这一步的含义是,统计数组到sum计算的位置0为止,包含的所有子数组中和为k的个数,将(0, 1)放进HashMap中的作用是要包含前缀和为k的情况,即从0开始加到N项正好为k的情况,如果不添加(0,1)是没有统计这种情况的,可以拿上面的例子实验一下。这道题的暴力解法比较容易想到,即固定一边界去遍历另一边界,统计所有的子数组的和为k的数量,时间复杂度O(N^2)

2024-07-15 11:14:06 589

原创 HashMap

1.不同值的对象hashcode不一定不相等,equals一定为false2.相同值的对象hashcode一定相等,equals一定为true3.hashcode不相等的两对象值一定不相等,equals一定为false4.hashcode相等两对象值不一定相等,需要equals进一步判断。

2024-07-14 21:13:31 893

原创 Leetcode137.只出现一次的数字Ⅱ

方法的时间复杂度为O(n),空间复杂度为常数级,开辟了一个数组统计每一位上出现1的次数。以下方法为leetcode上的某题解,不需要开辟数组空间仍可以计算X的值。作为一个小白,与leetcode上的大牛相比差距很大,还有很长的路要走。本方法仍然不够简洁,没有必要开启数组,可以逐bit的计算X的值。本题的思路是统计int类型每一位上1出现的次数,由于除了某元素。的bit位为1的位余3为1,为0的位余3为0。外,其他元素都出现了三次,故。

2024-07-12 16:57:24 204

原创 Leetcode260.只出现一次的数字Ⅲ

1.依然将整个数组进行异或操作,根据异或的性质:a^a=0, a^0=a,以及异或的交换律可得:整个数组的异或结果位两个只出现一次的数字的异或。2.由于两数字不等,故数组异或的结果一定不为0,故找到最低位为1的位,根据这一位为0或1将数组分成两组,出现一次的数字也会分别在这两组中。3.显然,分成的两组数组每组依然只有一个数字出现一次,其余都是两次,故在两组内部进行异或操作能分别取出两个出现一次的数字。此类题目用位运算是最方便的,但是对于刚刚接触位运算的人来说可能稍微有点难理解。代码写的有些不熟练。

2024-07-12 16:05:53 217

原创 Leetcode136.只出现一次的数字

1.即a^a=0, 0^a=a。2.异或操作可以改变次序。

2024-07-12 15:22:46 226

原创 Leetcode54 螺旋矩阵

代码写得比较臃肿,时间复杂度O(MN),M,N是输入数组的第一第二维度大小,空间复杂度为O(MN)需要将数组内容存储到一个List中(ps:代码内部四个if可以删除,因为代码会从上到下按顺序执行)给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。这类题我在做的时候一般会在纸上画一画,需要一定的调试过程,小白刚刚开始刷题。

2024-07-11 21:53:37 211

原创 浅谈Java中equals和==的区别

equals和==都是Java中判断相等的方法,但二者的使用场景有所不同。

2024-07-08 23:06:59 148 1

空空如也

空空如也

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

TA关注的人

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