自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【力扣hot100】day4

39. 组合总和42. 接雨水46. 全排列48. 旋转图像49. 字母异位词分组

2023-01-07 00:58:58 142 1

原创 b树和b+树的数据结构

B+树的叶子节点之间是有指针的;B+树一个节点可以有多个元素的。节点里面的元素是排好序的。普通的二叉树一个节点有一个元素,B树一个节点可以有多个元素。节点里面的元素是排好序的。

2022-12-30 21:22:35 202

原创 MySQL索引数据结构hash解析

仅能满足“=”,“IN”,不支持范围查询(哈希表这种结构适用于只有等值查询的场景,比如 Memcached 及其他一些 NoSQL 引擎);对索引的key进行一次hash计算就可以定位出数据存储的位置;很多时候Hash索引要比B+树索引更高效;

2022-12-30 17:04:08 202

原创 MyISAM索引解析、InnoDB索引解析

1、MylSAM存储引擎索引实现2、InnoDB存储引擎索引实现

2022-12-27 00:24:08 678

原创 MySQL索引为什么使用B+树,而不用二叉树、红黑树、哈希表、B树?

索引是帮助MySQL高效获取数据的排好序的数据结构。索引数据结构:1.二叉树2.红黑树3.Hash表4.B-Tree。

2022-12-26 11:14:40 1929

原创 【力扣hot100】day3

21. 合并两个有序链表 ; 22. 括号生成 ; 31. 下一个排列 ; 33. 搜索旋转排序数组 ; 34. 在排序数组中查找元素的第一个和最后一个位置

2022-11-06 16:52:31 151

原创 【力扣hot100】day2

11. 盛最多水的容器 15. 三数之和 17.电话号码的字母组合 19.删除链表的倒数第N个结点 20. 有效的括号

2022-10-31 13:11:18 200

原创 【力扣hot100】day1

1、两数之和;2、两数相加;3、无重复字符串的最长子串;4、寻找两个正序数组的中位数;5、最长回文子串

2022-10-24 00:51:26 114

原创 【黑马程序员JVM学习笔记】04.类加载与字节码技术

1. 类文件结构 2. 字节码指令 3. 编译期处理 4. 类加载阶段 5. 类加载器 6. 运行期处理优化

2022-09-19 20:10:01 166

原创 【黑马程序员JVM学习笔记】03.垃圾回收

1. 如何判断对象可以回收 2. 垃圾回收算法 3. 分代垃圾回收 4. 垃圾回收器 5. 垃圾回收调优

2022-09-19 19:57:20 690

原创 【黑马程序员JVM学习笔记】02.内存结构

1. 程序计数器 2. 虚拟机栈 3. 本地方法栈 4. 堆 5. 方法区 6. 直接内存

2022-09-19 18:28:01 211

原创 【黑马程序员JVM学习笔记】01.引言

1. 什么是jvm 2. 学习jvm有什么用 3. 常见的jvm 4. 学习路线

2022-09-19 17:31:22 636

原创 链表(简单)

剑指 Offer 06. 从尾到头打印链表剑指 Offer 24. 反转链表剑指 Offer 35. 复杂链表的复制

2022-07-04 21:55:41 234

原创 MySQL每日面经【02】

1、什么是最左前缀原则?什么是最左匹配原则?2、数据表类型有哪些3、数据库中的事务是什么?4、请简述常用的索引有哪些种类?

2022-06-18 23:48:41 136

原创 Java每日面经【01】

阿里实习面经2023【Java基础】

2022-06-13 00:13:13 100

原创 1.3MySQL高级应用-索引和锁【02】

MySQL主要配置文件MySQL逻辑架构和其它数据库相比,MySQL有点与众不同,它的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离。这种架构可以根据业务的需求和实际需要选择合适的存储引擎。1.连接层2.服务层3.引擎层4.存储层查看你的mysql现在已提供什么存储引擎:mysql>show engines;查看你的mysql当前默认的存储引擎:show variables like ‘

2022-05-25 23:42:21 77

原创 1.3MySQL高级应用-索引和锁【01】

MySQL_LinuxMySQL查询命令:rpm -qa|grep -i mysql(出现图示情况表示安装了MySQL)删除命令:rpm -e RPM软件包名(该名字是上一个命令查出来的名字)在Linux下查看安装目录:ps -ef|grep mysql密码连接MySQL:mysql -u root -p输入以上内容将得到下面的界面:ps -ef:以全格式显示当前所有进程cd [参数] (功能描述:切换到指定目录)pwd(功能描述:显示当前工作目录的绝对路径)查看字符集:.

2022-05-25 23:42:01 76

原创 MySQL每日面经【01】

1、MySQL中的myisam与innodb的区别?2、MySQL的逻辑架构3、MySQL日志binlog、redo log4、事务隔离级别有哪些?5、何为索引?有什么作用?6、索引的优缺点?7、索引的数据结构8、什么是事务?9、事务的四大特性10、为什么MySQL数据库使用B+树不使用B树?11、锁分类12、表级锁和行级锁了解吗?有什么区别?13、行级锁的使用有什么注意事项?...

2022-05-25 08:13:52 302

原创 狂神说【Javaweb入门到实战】笔记

01.web的基本概念、web服务器讲解02.Tomcat详解03.Http讲解04.Maven05.Servlet06.Cookie、Session07.JSP08.JavaBean09.MVC三层架构10.Filter11.监听器12.过滤器、监听器常见应用13.JDBC01.web基本概念、web服务器讲解web基本概念1.1前言web开发:web,网页的意思,www.baidu.com静态webhtml,css提供给所有人看的数据始终不会发生变化!动

2022-05-17 20:51:56 558

原创 时间复杂度分析

算法复杂度主要从时间、空间两个角度评价:时间:假设运行时间固定,统计算法运行的「计算操作的数量」,以代表算法运行所需时间;空间:统计在最差情况下,算法运行所需使用的「最大空间」常见种类根据从小到大排列,常见算法 时间 复杂度主要有:O(1) < O(logN) < O(N) < O(NlogN) < O(N2) < O(2N) < O(N!)O(1):1)运行次数与N大小呈常数关系:int algorithm(int N) { int a =

2022-04-26 09:11:23 1321

原创 1.2SQL/MySQL进阶即查询练习

1.查看MySQL数据库编码:SHOW VARIABLES LIKE ‘char%’;

2022-04-17 11:06:56 616

原创 Java8新特性

Java8新特性Lambda表达式函数式(Functional)接口Java 8(又称为jdk 1.8)是Java语言开发的一个主要版本。Java 8是oracle公司于2014年3月发布,可以看成是自Java5以来最具革命性的版本。Java 8为Java语言、编译器、类库、开发工具与JVM带来了大量新特性。Java 8新特性简介:1)速度更快2)代码更少(增加了新的语法:Lambda表达式)3)强大的Stream API4)便于并行5)最大化减少空指针异常:Optional6)Nash

2022-04-16 07:55:20 173

原创 1.1数据库及SQL/MySQL基础

SQL语言的概述:1.什么是SQL:结构化查询语言(Structured Query Language)。2.SQL的作用:客户端使用SOL来操作服务器。启动myaql.exe,连接服务器后,就可以使用sql来操作服务器了。将来会使用Java程序连接服务器,然后使用sql来操作服务器。3.SQL标准(例如SQL99,即1999年制定的标准):由国际标准化组织(ISO)制定的,对DBMS的统一操作方式(例如相同的语句可以操作:mysql、oracle等)。4.SQL方言某种DBMS不...

2022-04-15 14:39:45 90

原创 《算法不好玩》专题三:循环不变量

3-1循环不变量循环不变量:在循环的过程中保持不变的性质循环不变式主要用来帮助我们理解算法的正确性。关于循环不变式,我们必须证明三条性质:初始化:循环的第一次迭代之前,它为真。保持:如果循环的某次迭代之前它为真,那么下次迭代之前它仍为真。终止:在循环终止时,不变式为我们提供一个有用的性质,该性质有助于证明算法是正确的。《算法导论(第3版)》里出现「循环不变量」的地方:插入排序、归并排序、快速排序、优先队列、单源最短路径、最小生成树、……选择排序的循环不变量循环不变的性质:区间nums

2022-04-11 19:13:22 2320

原创 《算法不好玩》专题二:基础排序算法

2-1选择排序无序数组→有序数组基于排序算法可以学习的话题:「时间复杂度」、「递归」、「循环不变量」排序算法可以分为:「基于比较的排序算法」、「非比较的排序算法」基于比较的排序算法:「选择排序」、「冒泡排序」、「插入排序」、「希尔排序」、「归并排序」、「快速排序」、「堆排序」非比较的排序算法:「计数排序」、「基数排序」、「桶排序」选择排序的思路:先扫描一遍数组里的所有元素,选出看到的最小元素,我们把它交换到数组的开头,这个元素现在的位置就是排序以后它应该在的位置。接着,我们扫

2022-04-08 19:20:38 420

原创 《算法不好玩》专题一:递归与时间复杂度

https://www.bilibili.com/video/BV11h411h7nT《算法不好玩》专题一1-1初始递归递归(Recursion)是函数自己调用自己。递归是计算机科学特有的解决问题的方法。使用递归计算5的阶乘:从上到下是「拆分问题」,从下到上是「组合问题的解」。递归是先「自顶向下」,再「自底向上」1-2栈与深度优先遍历递归借助「栈」实现按照「深度优先」遍历如果原问题和子问题呈现出树形结构,拆分子问题和组合子问题的解释按照深度优先遍历(DFS)的方式进行的。从

2022-04-07 21:49:48 215

原创 基础篇(四):链表

链表-百度百科手写链表(单链表中结点的定义):public class SinglyListNode { int val; SinglyListNode next; SinglyListNode(int x){val=x;}}在大多数情况下,我们将使用头结点(第一个结点)来表示整个列表。1.哨兵节点哨兵节点是为了简化处理链表边界条件而引入的附加链表节点。哨兵节点通常位于链表的头部,它的值没有任何意义。在一个有哨兵节点的链表中,从第2个节点开始才真正保存有意义的信息。

2022-04-07 08:09:17 184

原创 基础篇(三):字符串

1.字符串的基础知识字符串由任意长度(长度可能为0)的字符组成,是编程语言中表示文本的数据类型。Java中用定义的类型String来表示字符串。String类型的常用函数:函数函数功能charAt返回指定下标处的字符compareTo按照字典顺序比较两个字符串equals判断两个字符串的长度和内容是否相同indexOf返回字符串中某个字符或子字符串首次出现的下标位置lastIndexOf返回字符串中某个字符或子字符串最后出现的下标位置leng

2022-04-07 08:07:17 411

原创 基础篇(二):数组

数组有两点要注意:数组下标都是从0开始的。数组内存空间的地址是连续的正是因为数组的在内存空间的地址是连续的,所以我们在删除或者增添元素的时候,就难免要移动其他元素的地址(不能直接插入或删除)。双指针双指针一般两类,一类是「快慢指针」,一类是「左右指针」。前者主要解决链表中的问题,比如典型的判定链表中是否有环;后者主要解决数组(或字符串)中的问题,如二分查找。141. 环形链表 - 力扣(LeetCode)142. 环形链表 II - 力扣(LeetCode)704. 二分查找 - 力扣(

2022-03-31 19:07:52 936

原创 基础篇(一):位运算

位运算是把数字用二进制形式表示之后,对每位上0或1的运算。1.位运算:位运算只有六种: ~(非)、&(与)、|(或)、^(异或)、<<(左移)和>>(右移)。非运算对整数的二进制按位取反,0取反得1,1取反得0。下面对8位整数进行非运算:~10001010=01110101,~00001010=11110101与、或、异或的运算:与(&)0&0=01&0=00&1=01&1=1或(|

2022-03-30 14:53:59 1015

原创 滑动窗口 [01]

先给出滑动窗口算法框架:/*滑动窗口算法框架*/private static void minWindow(String s,String t){ //滑动窗口左右侧位置指针 int left = 0,right = 0; while (right < s.length()){ //滑动窗口右边增加 right ++; if(滑动窗口满足目标){ //对窗口内元素操作 } //滑动窗口左边缩小 while(滑动窗口缩小条件){ // left

2022-03-29 18:13:36 523

原创 BFS和DFS

深度优先遍历(简称 DFS )与广度优先遍历(简称 BFS )是图论中两种非常重要的算法。DFS算法:思想:一直往深处走,直到找到解或者走不下去为止。void dfs(...) { // 结束递归的条件 if (...) { ... // 把“当前结果” 加入 “结果集容器” 中 return; } // 继续递归,里面可能有回溯,也可能没有 if (...) { ... // 在容器中保存当前数据

2022-03-28 16:40:41 611

原创 第十二届蓝桥杯B组C/C++省赛

试题A:空间本题总分:5分【问题描述】小蓝准备用256MB的内存空间开一个数组,数组的每个元素都是32位二进制整数,如果不考虑程序占用的空间和维护内存需要的辅助空间,请问256MB的空间可以存储多少个32位二进制整数?【答案提交】这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。题解:1MB=1024KB1KB=1024B1B=8位每个元素都是32位二进制整数即每个元素都是4字节256 * 1024 * 102

2022-03-27 12:29:48 1413

原创 C++ STL概述

STL就是封装好的一些数据结构以及一些算法C++ STL(标准模板库)是一套功能强大的 C++ 模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量、链表、队列、栈。Standard Template Library即标准模板库,简称STL,是C++内置的一些库。客观的讲,竞赛手所使用的「C++」,不如称为「C+STL」。何为模板?首先我们引入重载函数的概念,当我们要实现一个功能,与类型无关的时候,函数名可以重复(即参数列表且仅有参数列表不同),我

2022-03-26 21:44:11 2479

原创 二分查找[01]

35.搜索插入位置给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例 1:输入: nums = [1,3,5,6], target = 5输出: 2示例2:输入: nums = [1,3,5,6], target = 2输出: 1示例 3:输入: nums = [1,3,5,6], target = 7输出: 4提示:1 <= nums.l

2022-03-24 19:47:43 274

原创 链表[01]

链表基本概念:什么是链表,链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。链接的入口节点称为链表的头结点也就是head。手写链表(C/C++的定义链表节点方式):// 单链表struct ListNode { int val; // 节点上存储的元素 ListNode *next; // 指向下一个节点的指针 ListNode(int x) : val(

2022-03-24 09:04:59 1544

原创 Linux网络配置

查看网络IP和网关查看虚拟网络编辑器和修改IP地址查看网关查看Windows环境中VMnet8网络配置(ipconfig指令)查看Linux的配置ifconfigping测试主机之间网络连通性基本语法ping目的主机(功能描述:测试当前服务器是否可以连接目的主机)应用实例测试当前服务器是否可以连接百度ping www.baidu.comlinux网络环境配置第一种方法(自动获取):说明:登陆后,通过界面的来设置自动获取ip,特点:linux启动后会自动获取IP,缺点是每次自动获

2022-03-22 12:13:40 72

原创 Linux磁盘分区、挂载

Linux分区原理介绍Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linu中每个分区都是用来组成整个文件系统的一部分。Linux采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。示意图硬盘说明LinuX硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘对于 IDE硬盘,驱动器标识符为“hdx~”,其中“h

2022-03-22 12:10:14 95

原创 Linux定时任务调度

crond任务调度crontab进行定时任务的设置概述任务调度:是指系统在某个时间执行的特定的命令或程序。任务调度分类:1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份。基本语法crontab [选项]常用选项-e编辑crontab定时任务-l查询crontab任务-r删除当前用户所有的crontab任务快速入门设置任务调度文件:/etc/cronta

2022-03-22 12:07:47 177

原创 二叉树[1]

在二叉树上进行 DFS遍历和 BFS遍历的代码比较DFS遍历使用递归:void dfs(TreeNode root) { if (root == null) { return; } dfs(root.left); dfs(root.right);}BFS 遍历使用队列数据结构:void bfs(TreeNode root) { Queue<TreeNode> queue = new ArrayDeque<>();

2022-03-20 15:15:57 544

空空如也

空空如也

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

TA关注的人

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