自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 滑动窗口例题

滑动窗口,可以用来解决一些查找满足一定条件的连续区间的性质(长度等)的问题。由于区间连续,因此当区间发生变化时,可以通过旧有的计算结果对搜索空间进行剪枝,这样便减少了重复计算,降低了时间复杂度。往往类似于“请找到满足xx的最x的区间(子串、子数组)的xx”这类问题都可以使用该方法进行解决。

2023-08-01 09:39:47 267

原创 多源bfs

一些细节:实现上为了方便,在进行常规 BFS 时,如果一个「海洋」区域被访问到,说明其被离它「最近的陆地」覆盖到了,修改值为最小距离。我们可以将「源点/起点」和「汇点/终点」进行反转:从每个「陆地」区域出发,多个「陆地」区域每次同时向往扩散一圈,每个「海洋」区域被首次覆盖时所对应的圈数,就是「海洋」区域距离最近的「陆地」区域的距离。与「单源最短路」不同,「多源最短路」问题是求从「多个源点」到达「一个/多个汇点」的最短路径。并且通过建立「虚拟源点」的方式,我们可以「多源 BFS」转换回「单源 BFS」问题。

2023-07-31 21:06:42 381

原创 Redis面试

使用sorted set 相关的redis命令 ZRANGE, ZREVRANGE(降序),ZREVRANK(指定元素排名)由于购物车信息经常变动,所以我们推荐使用Hash 存储。用户id为key,商品id为Field,商品数量为value。那用户购物车信息的维护具体应该怎么操作呢?

2023-03-28 22:04:21 956 2

原创 图论问题集合

【综合笔试题】难度 3/5,为啥是图论不是 DP,两者是什么关系?

2023-03-28 15:54:41 143

原创 力扣刷题小技巧

2.3 根据数据规模,判断我们的朴素算法计算机是否可以在 1s 内处理完②,即判断运算次数是否在 以内③。例如本题使用双指针算法,指针移动和判断大小算一次运行,由于数据只有 2000,距离 还很远,所以完全足够了。在机试或者周赛中,遇到一些是从文字上限制我们的题目,例如本题限制我们使用 算法。例如本题很容易就想到直接使用双指针找第 k 个小的数,复杂度为。在机试或者周赛中,目的是尽可能快的 AC,所以 Java 可以直接不写。的修饰符(不写代表使用默认的包权限),这没有问题,不用纠结。

2023-03-28 10:44:27 215

原创 mysql忽略知识点

3. substring(name, startIndex, len)分别是要分割的字符串,开始下标,长度。4.判断是否相等是用 = 而不是 ==7.分组聚合一定不要忘记加上。是统计非 NULL 的行数;,不然只会有一行结果。1.下标索引从1 开始。2.匹配 用like。

2023-03-25 10:21:36 104

原创 mySql错题

2023-03-25 10:21:29 43

原创 最长递增子序列

是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。,找到其中最长严格递增子序列的长度。

2023-03-22 09:27:14 56

原创 java线程池常见的对比

submit用于提交需要返回值的任务.线程会返回一个Future类型的对象,通过这个Future类型的对象可以判断是否执行成功,并且可以通过Future的get方法来获取返回值,get方法会阻塞当前的线程,直到任务完成,同样可以使用加时间限制的方法来限制执行时间get(long timeout,TimeUnit unit)用于提交不需要返回值的任务,所以不需要判断任务是否成功。接口不会返回或者抛出异常,

2023-03-21 11:17:54 103

原创 JMM解析(java内存模型)

主要定义了对于一个共享变量,另一个线程对这个共享变量执行写操作后,这个线程对这个共享变量的可见性。

2023-03-21 10:00:19 215

原创 【无标题】

给定一些同学的信息(名字,成绩)序列,请你将他们的信息按照成绩从高到低或从低到高的排列,相同成绩都按先录入排列在前的规则处理。例示:从高到低 成绩从低到高注:0代表从高到低,1代表从低到高输入描述:第一行输入要排序的人的个数n,第二行输入一个整数表示排序的方式,之后n行分别输入他们的名字和成绩,以一个空格隔开。

2023-03-20 15:54:56 259

原创 适合dfs而不适合dp的情况

HJ93 数组分组 牛客输入int型数组,询问该数组能否分成两组,使得两组中各元素加起来的和相等,并且,所有5的倍数必须在其中一个组中,所有3的倍数在另一个组中(不包括5的倍数),不是5的倍数也不是3的倍数能放在任意一组,可以将数组分为空数组,能满足以上条件,输出true;不满足时输出false。

2023-03-19 15:44:17 113

原创 手撕设计模式

因为jvm是具有指令重排的特性,所以我们如果不加volatile可能面对执行顺序变为1-3-2的情况(在多线程的情况下)1.单例模式,通过双重校验锁的方式实现.

2023-03-19 11:34:15 67

原创 java并发文字总结

字节码解释器通过改变程序计数器来依次读取指令,从而实现代码的流程控制,如:顺序执行、选择、循环、异常处理。在多线程的情况下,程序计数器用于记录当前线程执行的位置,从而当线程被切换回来的时候能够知道该线程上次运行到哪儿了。所以,程序计数器私有主要是为了线程切换后能恢复到正确的执行位置。每个 Java 方法在执行的同时会创建一个栈帧用于存储局部变量表、操作数栈、常量池引用等信息。从方法调用直至执行完成的过程,就对应着一个栈帧在 Java 虚拟机栈中入栈和出栈的过程。

2023-03-18 21:47:56 932

原创 为什么重写equals方法必须重写hashCode方法

equals 方法和 hashCode 方法是 Object 类中的两个基础方法,它们共同协作来判断两个对象是否相等。为什么要这样设计嘞?原因就出在“性能” 2 字上。使用过 HashMap 我们就知道,通过 hash 计算之后,我们就可以直接定位出某个值存储的位置了,那么试想一下,如果你现在要查询某个值是否在集合中?如果不通过 hash 方式直接定位元素(的存储位置),那么就只能按照集合的前后顺序,一个一个的询问比对了,而这种依次比对的效率明显低于 hash 定位的方式。

2023-03-15 21:28:43 1469

原创 java集合概述

ListArrayListObject[]数组VectorObject[]数组LinkedList: 双向链表(JDK1.6 之前为循环链表,JDK1.7 取消了循环SetHashSet(无序,唯一): 基于HashMap实现的,底层采用HashMap来保存元素是HashSet的子类,并且其内部是通过来实现的。有点类似于我们之前说的其内部是基于HashMap实现一样,不过还是有一点点区别的TreeSet(有序,唯一): 红黑树(自平衡的排序二叉树)QueueObject[]数组来实现二叉堆。

2023-03-15 21:20:29 462

原创 spring 源码阅读(基础)-第二章 基础工具

1.什么是内省:内省是java语言针对bean属性,事件的一种缺省处理方法,spring源码中也经常会出现相关的api。javaBean是一种特殊的类,主要用于信息传递,这种类中的方法主要用于私有字段的访问,且方法名符合某种命名规则,事实上,内省机制也是通过反射来实现的。反射的功能是比内省强大的。在Java内省中,用到的基本上就是上述几个类。内省api的一般的做法是通过类 Introspector 的 getBeanInfo方法来获取某个对象的。

2023-03-15 20:21:25 317

原创 java 基础-语法糖

也称糖衣语法,是英国计算机学家 Peter.J.Landin 发明的一个术语,指在计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。简而言之,语法糖让程序更加简洁,有更高的可读性。说到编译,java语言中,javac命令可以将后缀名为.java的源文件编译成后缀名为.class的可以运行与jvm虚拟机的字节码。在java中最常用的语法糖有:变长参数,泛型,条件编译,自动拆装箱,内部类等等。

2023-03-15 20:19:57 278

原创 重写比较器

1.对于优先队列,经常用于构建小顶堆。2.对于arraylist。

2023-03-15 15:59:03 148

原创 spring源码阅读 - 容器

DefaultListalbleBeanFactory是一个典型的bean工厂实现,这个类类图如下’:一个bean工厂应该具备的能力:1.基础能力,枚举bean,分层,自动装配,独立配置2.注册单例bean包括beanFactory的能力3.注册别名的能力spring中创建的bean默认就是单例bean。单例bean也存在缺点,主要表现在在并发环境下的线程不安全。

2023-03-15 10:37:11 544

原创 java SPI机制

spi就是接口在调用方这边,调用方规定了接口的标准,实现方根据接口的规定来实现.将调用方和服务提供者实现解耦,能够提升程序的扩展性和可维护性.修改或者替换服务不需要修改调用方,只需要替换服务提供者即可.slf4j是经典的spi机制.和api区别对比图如下:一般模块之间都是通过通过接口进行通讯,那我们在服务调用方和服务实现方(也称服务提供者)之间引入一个“接口”。当实现方提供了接口和实现,我们可以通过调用实现方的接口从而拥有实现方给我们提供的能力,这就是 API ,这种接口和实现都是放在实现方的。

2023-03-14 23:03:25 651

原创 jvm类与类加载

首先要加载某个类一定是出于某种目的,比如要运行java程序,那么久必须加载主类才能运行其中的方法,所以一般在这些情况下,如果类没有被加载,就会自动被加载:1.使用new创建对象时2.使用某个类的静态成员的时候,当然final这种类型的静态字段是有可能在编译的时候被放到当前类的常量池中3.使用反射对类信息进行获取的时候4.加载一个类的子类的时候5.加载接口的类实现,且接口带有default方法默认实现的时候。

2023-03-14 19:36:41 358

原创 java参考桶排序思路

按照桶排序思路进行预处理:保证 1 出现在 nums[0] 的位置上,2 出现在 nums[1] 的位置上,…,n 出现在 nums[n - 1] 的位置上。例如样例中 [4,3,2,7,8,2,3,1] 将会被预处理成 [1,2,3,4,3,2,7,8]。中的数字,并以数组的形式返回结果。448. 找到所有数组中消失的数字。

2023-03-13 15:01:47 54

原创 三种方法解决区间问题

1004. 最大连续1的个数 III提示中等517相关企业给定一个二进制数组nums和一个整数k,如果可以翻转最多k个0,则返回数组中连续1的最大个数。6,1,1,1,1,粗体数字从 0 翻转到 1,最长的子数组长度为 6。10[0,0,1,1,,1,1,1,粗体数字从 0 翻转到 1,最长的子数组长度为 10。

2023-03-13 14:40:45 431

原创 spring boot 细小知识点

1.classpath 只会扫描当前工程下的文件, classpath*会扫描jar包下的文件。

2023-03-13 10:38:29 43

原创 spring 源码阅读(基础)-第二章 基础工具

1.什么是内省:内省是java语言针对bean属性,事件的一种缺省处理方法,spring源码中也经常会出现相关的api。javaBean是一种特殊的类,主要用于信息传递,这种类中的方法主要用于私有字段的访问,且方法名符合某种命名规则,事实上,内省机制也是通过反射来实现的。反射的功能是比内省强大的。在Java内省中,用到的基本上就是上述几个类。内省api的一般的做法是通过类 Introspector 的 getBeanInfo方法来获取某个对象的。

2023-03-13 09:52:57 222

原创 前缀和模板

【代码】前缀和模板。

2023-03-12 16:59:24 222 2

原创 快速乘法模板

当不能使用乘法和除法的时候,可以使用位移的形式进行快速乘法,使用的是倍增思想。

2023-03-12 14:52:08 74

原创 java中忽略的基础知识

1.想要字符串按照 “.”分割 需要 String‘[] re = s.split("\\.");因为首先在java中 . 是个特殊符号,需要转义, 前面要加 \ 而在lambda表达式中,\ 又需要转义,所以是两个 \\。4.Integer.toBinaryString() 将十进制转换为二进制,但是返回的是string类型。2.Arraylist add() remove(index 或者 object)5.string substring 是小写!

2023-03-10 16:08:40 93 1

原创 Spring源码阅读(基础)

spring源码基础

2023-03-10 11:40:47 366

原创 jvm理解

jvm理解

2023-03-09 11:35:49 267

原创 juc并发编程

并发编程

2023-03-09 10:28:06 81

原创 java多线程

java多线程

2023-03-08 11:18:29 49

原创 二分查找的mid值确定以及check函数的确定

二分查找的mid值确定以及check函数的确定

2023-03-08 09:37:11 1585

原创 搜索旋转排序数组

搜索旋转排序数组

2023-03-08 08:35:35 65

原创 混合背包问题

混合背包

2023-03-05 20:26:10 227

原创 完全背包总结

完全背包总结

2023-03-05 20:21:30 52

原创 多重背包问题中的二进制状态压缩

多重背包问题中的二进制状态压缩

2023-03-05 20:15:17 330

原创 序列化笔记

序列化

2023-03-04 20:49:22 65

原创 数据类型及参数传递

数据类型及参数传递

2023-03-04 20:39:19 742

空空如也

空空如也

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

TA关注的人

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