自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 力扣 239.滑动窗口最大值

新元素入队列,将新元素的下标添加进队列,现在队列维护的就是后续滑动窗口的时候可能成为窗口最大值的元素下标,因为不可能在滑动窗口的时候 成为窗口最大值的元素已经在新元素入队列之前,通过步骤2让新元素和当前队列中的每一个元素比较过了,将小于新元素的旧元素全部从队列中删除了,换句话说,就是将新元素入队列之后,不可能成为最大值的元素全部删除了,每一次将一个元素入队列之前,都将小于该元素的值移除队列,就可以保证队列的首元素在没过期之前一直是需要求的最大值,减少了比较次数。你只可以看到在滑动窗口内的。

2024-05-26 02:12:20 295

原创 力扣 560.和为k的子数组

子数组是数组中元素的连续非空序列。

2024-05-25 02:03:08 227

原创 力扣 3.无重复字符的最长字串

初始时,在temp字符串中保存第一个字符,假设现在从第二个字符位置开始遍历,如果当前位置的字符 x 在temp中已有记录,那么说明现在以第一个字符开头的子串已经是最长的无重复元素的子串了,那么就更新count,然后从temp中找出字符 x 出现的位置,然后从该位置之后截取字符串,重新更新字符串temp,接着将下一个要添加进来的字符拼接在字符串末尾,继续向后遍历下一个字符。从左到右遍历每一个位置的字符,temp中保存的是当前计算出来的最长无重复字符的子串,count中保存的是无重复元素的最长字串长度。

2024-05-23 22:18:35 356 1

原创 力扣 42.接雨水

题解1:按行来求,一行一行算,先计算出最高的“墙”的高度,然后从最高的那行开始遍历,对于每一行来说,比如第5行(首行是第1行),从左到右遍历一行,如果现在该行某一位置墙的高度大于等于5,我们就记录下来,假设用 l 记录,继续向后遍历,发现又出现一个墙的高度大于等于5的位置,用 r 记录下来,那么我们现在就可以确定,l 和 r之间肯定是低洼,可以蓄水的地方,并且由于我们只关心这一行,因此,蓄水的容量就是 r-l+1。的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。个非负整数表示每个宽度为。

2024-05-23 02:41:55 1037

原创 力扣 15.三数之和

第二种:如果现在的三个数中第一个数k已经大于0,说明后面两个数也肯定大于0(因为我们已经将数组进行从小到大的排序了),那么三数相加不可能再等于0,这种情况也需要省略,即这要出现k>0的情况,就说明循环遍历可以结束了,之后不会再有满足要求的数组元素组合了。题解:还是需要遍历全部的可能结果,但是可以使用双指针进行剪枝,这里考虑循环遍历数组,将数组的每一个元素作为三个数字中的第一个元素,然后查找所有的可能,进行计算,但是首先需要对数组进行排序,保证不重不漏。注意,输出的顺序和三元组的顺序并不重要。

2024-05-21 10:58:36 372

原创 JAVA基础(三)

中已经做过解释,多线程首次调用getInstance时,其中一个通过5和6,来到8,但是8实际操作分为三步,若没有使用volatile就会使三步操作中初始化和赋值(就是将变量指向一个内存,使变量的值不为null,但是实际该内存中并没有东西)颠倒顺序,这时,如果有另一个线程走到5,就会认为instance不为null,直接return,可能会导致程序出现未定义的错误,比如一个线程利用该什么也没有的变量执行其他操作,就会得到错误的结果。多线程下,上几次锁就得对应的释放几次锁,这样其他线程才能获取到该锁。

2024-05-19 18:43:17 672 1

原创 力扣 11. 盛水最多的容器

假设现在h=<h1,现在容量是h*(x1-x) 那么x到x1之间的全部元素都不需要遍历,因为由x1移到x1-1位置时,相当于宽减小,高最大也还是h,即容量是h*(x1-1-x),也就是说x到x1之间的每一个容器容量都不会大于x和x1形成的容器容量,因此只要h<h1时,既不需要计算x到x1之间的值了。假设现在h>h1,现在容量是h1*(x1-x) 那么当x到x1之间的某个位置(假设是x1-1)高度(假设是h2)大于h1时才有必要计算,因为如果小于h1,现在计算出来的容量相当于高度和宽度都减小了,即。

2024-05-19 18:35:46 438 1

原创 力扣 283.移动零

和题解1类似,两遍遍历,第一遍将非0元素挤到前面,每找到一个非零元素,就将其放在j位置,j初始是0,然后j++,代表下一个非零元素要放在哪里,第二遍遍历将按需排好的非零元素的下一个位置(就是j)到数组末尾全部置为0(因为现在已经将全部非零元素排在数组最前面了)移动到数组的末尾,同时保持非零元素的相对顺序。,必须在不复制数组的情况下原地对数组进行操作。,编写一个函数将所有。

2024-05-18 02:58:41 250

原创 力扣 128.最长连续序列

为什么不判断一下x-2,x-3...是否存在,因为x-1存在的话,必然比遍历x得出的结果大1,但是x-2,x-3...存在的话,未必能得出该结果,假如不存在x-1,即现在数组是0,1,2,3,5,6 x=5时,x-2存在,但是x-1不存在,数组已经不连续了,自然判断x-2没有什么用了。:我直接排序数组,然后从第二个元素开始遍历数组,dp数组初始置为1,当前位置元素值等于前一位置元素值加1,说明形成递增排序,如果相等,dp[i]=dp[i-1],最后记录的最大dp值就是要求的值。给定一个未排序的整数数组。

2024-05-17 02:09:36 248

原创 力扣 49.字母异位词分组

实现,key值就是升序之后的字符串,遍历strs字符数组,每次对一个字符串进行排序,在map中寻找是否有对应键值的List,没有就new一个,之后put(新key,新List)到map中,如果之前就有对应键值的List,那么取出List,将新的同源str字符串加入其中。又存在要保存没有排序的同源字符串到同一个List中,因此考虑使用。解释题目:没看懂题目要求,直接看了评论,其实就是现在要找到给出的字符串数组中,除了字母排序不一样的其他全部相同的字符串,放到一个List中,找出这样的全部List进行输出。

2024-05-16 01:48:14 407

原创 JAVA基础(二)

在这种情况下,虽然类已经被加载到内存中,但是并没有显式地创建该类的实例),给外部类中写一个方法,在该方法中实现创建内部类对象,然后调用内部类方法和属性,再在主函数中调用外部类的方法即可。->泛型方法,可以使用类声明的泛型,也可以使用自己方法声明的泛型,但是不允许使用类内未声明并且方法内也未声明的泛型。直在定义内部类的方法中创建内部类对象,通过内部类对象来调用内部类方法属性,再在主函数中调用外部类的方法即可。->要访问局部内部类,可以在外部类定义内部类的方法中实例化内部类对象,从而调用内部类的方法和属性。

2024-04-04 16:36:09 720

原创 JAVA基础(一)

分析,Animal a = new Cat() 实现a指向cat,之后又让c->被向上转型成的cat,因此合理。

2024-04-01 12:08:56 846

《自顶向下 深入理解计算机网络》

归档,仅供参考

2024-02-14

空空如也

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

TA关注的人

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