自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mybatis注意事项

XML中的SQL的注释要用“”,不可以用“-- ”,否则仍会被执行。

2024-09-22 14:02:43 97

原创 常见echart图表 返回数据与Java实体类

总结:柱状图和折线图的数据格式基本一致,实体类相同。

2024-09-05 16:57:36 313

原创 表连接查询之两个left join与递归SQL

4、SELECT e.id, e.user_id, e.parent_id FROM e INNER JOIN ParentHierarchy ph ON e.id = ph.parent_id:递归的主体部分,将表e与已经构建的ParentHierarchy进行内连接,匹配e表中的id和ParentHierarchy中的parent_id,从而得到。左连接,将information表中的每一行与sys_user表中id等于information表中update_id的行匹配。(1,1,2,张三,李四),

2024-09-04 17:33:16 730

原创 VUE-组件间通信(三)全局事件总线

总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束, 按照计算机所传输的信息种类,计算机的总线可以划分为。$on:监听事件,当某个自定义事件被触发时,通过on方法注册的回调函数将被执行。,分别用来传输数据、数据地址和。一、作用:任意组件间通信。1、创建全局事件总线。

2024-08-31 18:01:15 654

原创 哈希表应用实例(记一次日常问题解决)

已知条件:100个公司(公司ID已知),每个公司有一个报告,报告内有产量。有一组记录,公司A,报告ID为1;分类之后,即可求每一类的产量和。需求:求每个公司的产量和。公司B,报告ID为2;公司C,报告ID为3;公司D,报告ID为4;公司A,报告ID为5;公司A,报告ID为6;公司B,报告ID为7;公司D,报告ID为8;

2024-08-22 17:09:08 215

原创 postgresql-主键自增

【代码】postgresql-主键自增。

2024-07-26 11:50:15 189

原创 数据库表结构创建

4、有一张主表weather_station:有字段id、name、address、weather_value、weather_unit、weather_origin。一张气温表:有关联字段weather_station_id(可用于存取主表数据)、type字段区分实测值还是默认值、其他字段id、value、unit、origin。{"name":"temp","value":"30","unit":"℃","origin":"白云气象站","type":"0"},Java实体类对应Object。

2024-07-25 19:51:19 214

原创 leetcode-动态规划-01背包

(2)状态转移方程 dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - weight[i]] + value[i]);所以递归公式: dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - weight[i]] + value[i]);dp[1][1] = max(dp[0][1], dp[0][1- weight[i]] + value[i]) 一定在其左方且上方,重量是nums[i],价值也是nums[i],背包体积是sum/2。

2024-07-10 17:12:50 569

原创 leecode-动态规划-基础题目

一定是选最小的,所以dp[i] = min(dp[i - 1] + cost[i - 1], dp[i - 2] + cost[i - 2])dp[i][0]一定都是1,因为从(0, 0)的位置到(i, 0)的路径只有一条,那么dp[0][j]也同理。dp[i - 1] 跳到 dp[i] 需要花费 dp[i - 1] + cost[i - 1](2)dp[i][j]为从dp[0][0]到dp[i][j]的路径数。故:dp[i][j]=dp[i-1][j]+dp[i][j-1]遇到障碍,则停止赋值为1;

2024-07-09 17:05:01 284

原创 leetcode-22-贪心-01

对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j]。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。假设你是一位很棒的家长,想要给你的孩子们一些小饼干。大尺寸的饼干既可以满足胃口大的孩子也可以满足胃口小的孩子,那么就应该优先满足胃口大的。为了满足更多的小孩,就不要造成饼干尺寸的浪费!是先遍历的胃口,再遍历的饼干。

2024-07-03 19:55:54 247

原创 leetcode-21-回溯-全排列及其去重

回溯总结:一般来说:组合问题和排列问题是在树形结构的叶子节点上收集结果,而子集问题就是取树上所有节点的结果。相当于在每个分支上标记使用了那些元素,每个分支,元素只可以使用一次。的序列 nums ,按任意顺序 返回所有不重复的全排列。,这样我们才方便通过相邻的节点来判断是否重复使用了。数字的序列,返回其所有可能的全排列。其中,不需要使用startIndex。1、去重一定要对元素进行。2、树枝去重(更好理解)3、树层去重(效率更高)二、[47]全排列2。

2024-07-02 12:00:51 302

原创 leetcode-20-回溯-切割、子集

示例: 输入: nums = [1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]子串:[startIndex,i] 即为分割线前面的部分、两个分割线之间的部分(长度至少为1)示例: 输入: "aab" 输出: [ ["aa","b"], ["a","a","b"] ]不同的是先判断取的每一部分是否是回文串,是,则继续分割,下一层递归;给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。

2024-06-29 21:28:22 414

原创 leetcode-19-回溯-组合问题(剪枝、去重)

示例: 输入: n = 4, k = 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4]]至多从该起始位置开始遍历(否则元素个数不够):n - (k - path.size()) + 1。类似题目[216]、[17](有点难度)、[39]、[40](需要对开始索引做处理)[x, n]的数组长度起码应该是k-path.size()才有继续搜索的可能。解方程得 x = n+1 - (k-path.size()),那么 n-x+1 = k-path.size()

2024-06-27 21:20:31 632

原创 leetcode-18- [669]修剪二叉搜索树[108]将有序数组转换为二叉搜索树[538]把二叉搜索树转换为累加树

一般先考虑抽出一个子树,即左根右三个节点,之后根据条件,看往左子树还是右子树。二叉搜索树多考虑特性,不用考虑遍历顺序。一、[108]将有序数组转换为二叉搜索树。二、[538]把二叉搜索树转换为累加树。重点:一般二叉树多考虑遍历顺序,三、[669]修剪二叉搜索树。方向前进,或者结束递归返回。

2024-06-26 15:50:26 298

原创 CAS原理与JUC原子类

(2)底层原理:Unsafe类提供的CAS方法,直接通过native方式(通过指针直接操作内存),调用了底层的CPU指令cmpxchg(原子指令)。(1)概念及作用:增强Java语言操作底层资源的能力,里面的方法多为native修饰的方法(基于C++实现),不建议在代码中使用,不安全。(3)使用:类被final修饰,构造方法是私有的,因此不能外部实例化,只能通过反射调用。将value值分离成一个数组,获取最终的value时,则将数组的元素求和。1线程操作变量A,2线程修改为B,在1线程发现前又修改为A。

2024-06-25 16:39:54 450

原创 leetcode-17-[235]二叉搜索树的最近公共祖先[701]二叉搜索树中的插入操作[450]删除二叉搜索树中的节点

一、[235]二叉搜索树的最近公共祖先。二、[701]二叉搜索树中的插入操作。三、[450]删除二叉搜索树中的节点。1、叶子节点的删除思路如上题。

2024-06-25 13:28:06 232

原创 leetcode-16-[530]二叉搜索树的最小绝对差[501]二叉搜索树中的众数[236]二叉树的最近公共祖先

一、[530]二叉搜索树的最小绝对差。三、[236]二叉树的最近公共祖先。二、[501]二叉搜索树中的众数。注意:节点相等,而不是值相等。

2024-06-24 16:23:51 157

原创 leetcode-15-[654]最大二叉树[617]合并二叉树[700]二叉搜索树中的搜索[98]验证二叉搜索树

注意:可以与后序中序建树一起写,思想类似。三、[700]二叉搜索树中的搜索。注意:也可以新建树来存储节点。利用二叉搜索树的特性。四、[98]验证二叉搜索树。一、[654]最大二叉树。二、[617]合并二叉树。重点:类似于数组的双指针。

2024-06-22 20:29:03 275

原创 leetcode-14-[513]找树左下角的值[112]路径总和[113] 路径总和ii [106]从中序与后序遍历序列构造二叉树[105]从前序与中序遍历序列构造二叉树

因此:需暂存tmp(List),再赋值给res,否则只存入了根节点,其他元素都remove了。三、[106]从中序与后序遍历序列构造二叉树[105]从前序与中序遍历序列构造二叉树。如果你知道中序的左部分的size,就可以靠size去切割后序。中序点左点size和后续的左的size一定是一样的。二、[112]路径总和[113] 路径总和ii。重点:List为引用传递,指向同一个内存地址。一、[513]找树左下角的值。因为中序和后续都是先左后右。

2024-06-21 12:27:09 386

原创 leetcode-13-[110]平衡二叉树[257]二叉树的所有路径[404]左叶子之和[222]完全二叉树的节点个数

如:根节点的左子树,只有一个节点,符合条件,此时直接返回。重点:注意不能直接返回 root.left.val,即。应该暂存tmp=root.left.val,注意:注释的1、2两处得有返回值-1。而右子树还没有进行递归,解答错误。四、[222]完全二叉树的节点个数。在左右子树均进入递归后,再返回。另:后序遍历 逻辑更加容易理解。二、[257]二叉树的所有路径。一、[110]平衡二叉树。三、[404]左叶子之和。

2024-06-20 17:47:29 221

原创 leetcode-12-[226]翻转二叉树[101]对称二叉树[104]二叉树的最大深度[111]二叉树的最小深度

2、tmp为局部变量,不存值,直观来说,即层层递归之后的返回tmp,仍为一开始传入的tmp,中间过程忽略不计。1、题目中:最小深度是从根节点到最近叶子节点的最短路径上的节点数量。高度:任意节点到叶子节点(左右孩子都为空)的节点数。说明: 叶子节点是指没有子节点的节点。深度:任意节点到根节点的节点数。三、[104]二叉树的最大深度。四、[111]二叉树的最小深度。重点:交换节点应该传入根节点。一、[226]翻转二叉树。二、[101]对称二叉树。

2024-06-19 15:17:56 306

原创 leetcode-11-二叉树前中后序遍历以及层次遍历

10题解法类似,均可采用层次遍历的思想。前序遍历 (先根遍历) 中左右。[102]二叉树的层次遍历。

2024-06-18 17:08:08 214

原创 leetcode-10-[150]逆波兰表达式求值 [239]滑动窗口最大值[347]前k个高频元素

对于堆(使用PriorityQueue实现):从队头到队尾按从小到大排就是最小堆(小顶堆),2、需要保证队列元素在[i+1-k,i]区间,即当队头元素不在这个区间内,及时移出。从队头到队尾按从大到小排就是最大堆(大顶堆)--->队头元素相当于堆的根节点。3、加入的元素值必须小于队尾元素的值(始终保证队头元素最大),否则移出。“-”、“/”,第二个弹出的元素 “-” 第一个弹出的元素。第一个参数:1 第二个参数:3 负数 1、3。第一个参数:4 第二个参数:3 正数 3、4。

2024-06-17 13:55:54 411

原创 leetcode-09-[232]用栈实现队列[225]用队列实现栈[20]有效的括号[1047]删除字符串中的所有相邻重复项

基于Linkedlist是链表等,除了删除操作,ArrayDeque的其他效率都比Linkedlist好。队列建议用ArrayDeque和Linkedlist来实现。建议用 ArrayDeque和Linkedlist来实现。四、[1047]删除字符串中的所有相邻重复项。重点:queue2 为辅助队列,只做中转用。栈不建议用stack来实现。一、[232]用栈实现队列。二、[225]用队列实现栈。重点:在构造器内初始化。三、[20]有效的括号。

2024-06-15 14:04:03 296

原创 leetcode-08-[151]翻转字符串里的单词[卡码网55]右旋转字符串

一、[151]翻转字符串里的单词。二、[卡码网55]右旋转字符串。

2024-06-14 11:40:56 340

原创 leetcode-07-[344]反转字符串[541]反转字符串II[卡码网54]替换数字

将数组转换成String类型输出的。1、字符数组转String 一般 new String(ch);或者用StringBuffer 、StringBuilder。二、[541]反转字符串II。三、[卡码网54]替换数字。重点:String 不可变。一、[344]反转字符串。

2024-06-13 13:11:36 373

原创 leetcode-06-[454]四数相加II[383]赎金信 [15] 三数之和 [18] 四数之和

nums[k] + nums[i] + nums[left] + nums[right] > target int会溢出。应该注意b 、a 可以相同,故 j > i+1(每次开始时 j = i+1)只需要排序后的数组,在a>0时,再进行比较a>target即可,满足则剪枝。但-5+(-4)+1+2=--6 存在四元组。如[-5,-4,0,1,2] -6。三数之和、四数之和 适合用双指针。一、[454]四数相加II。四、[18] 四数之和。三、[15] 三数之和。1、剪枝时,需要考虑。

2024-06-12 14:05:20 618

原创 leetcode-05-[242]有效的字母异位词[349]两个数组的交集[202]快乐数[1]两数之和

List 数组 固定大小 如26个字母,10个数字 空间换时间。Map hashmap 形式。无限循环:即出现不止一次,考虑用哈希表。Set hashset 去重。一、[242]有效的字母异位词。二、[349]两个数组的交集。三、[202]快乐数。

2024-06-11 15:48:16 294

原创 leetcode-04-[24]两两交换链表中的节点[19]删除链表的倒数第N个节点[160]相交链表[142]环形链表II

快指针先行n步,这样快慢指针之间形成了一段长度为n的窗口,之后快慢指针同步向前相当于保持窗口长度不变。这样当快指针到达了末尾指向NULL,另一端的慢指针距离末尾的长度是n,自然就是指向倒数第n个位置了。由于单链表中的next指针指向的是下一个节点,想要删除倒数第n个节点,自然要将操作指针慢指针指向倒数第n+1个节点,这样才能进行删除操作。如果单链表中要删除的节点是头节点,这个头节点正好是dummyHead的下一个节点,如此即可统一起来删除操作而不必单独考虑。二、[19]删除链表的倒数第N个节点。

2024-06-08 14:35:49 693

原创 leetcode-03-[203]移除链表元素[707]设计链表[206]反转链表

重点:定义size!,并在添加时,删除时改变size大小。小重点:设计链表,比较新颖的题型。重点:理解逻辑,找对方法!一、[203]移除链表元素。二、[707]设计链表。三、[206]反转链表。本节重点:虚拟头节点。

2024-06-07 14:02:56 221

原创 leetcode-02-[977]有序数组的平方[209]长度最小的子数组[59]螺旋矩阵II

1、滑动窗口,for循环的 j 为终止位置。2、注意最后的处理,滑动窗口大小为0。新引入一个数组,不要原数组操作。二、[209]长度最小的子数组。一、[977]有序数组的平方。2、i 对应 X,j对应 Y。三、[59]螺旋矩阵II。

2024-06-06 14:43:23 180

原创 leetcode-01-[704]二分查找[27]移除元素

一、[704]二分查找。没有改变元素的相对顺序。二、[27]移除元素。改变了元素的相对顺序。二、快慢指针(推荐)

2024-06-05 13:05:49 189

原创 若依前后端分离项目(一)环境搭建

至此,后端项目配置完成,可启动成功!至此,前后端配置完成,启动前端。其中ruoyi-ui为前端项目。修改配置文件的用户名密码。修改配置文件的用户名密码。

2024-06-03 17:24:41 351

原创 4、exception与error

ArrayIndexOutOfBoundsException 数组下标越界异常。FileNotFoundException 操作一个不存在的文件异常。ClassNotFoundException 加载不存在的类异常。NumberFormatException 数字格式不正确异常。SQLException 操作数据库,查询表时可能发生异常。ArithmeticException 数学运算异常。IOException 操作文件异常。分为编译时异常与运行时异常。1、常见的运行时异常。2、常见的编译时异常。

2024-05-30 15:22:05 238

原创 3、HashMap详解

若不为0,则扩容后的数组下标为扩容前的数组下标+扩容前的数组长度。3、扩容1.7时头插法会出现环形链表,死循环;若hash值&扩容前数组长度为0,则扩容后的数组下标不变。每个节点,到其叶子节点的所有路径,包含相同数目的黑色节点。用原先位置key的hash值&旧数组的长度。2、put导致扩容,再get导致为null。不需要重新计算元素的hash进行元素迁移,1、元素e,hash值,数组下标(索引)如果结果不为0,桶位置就是当前元素原来的。相比于二叉查找树,可以避免单一链表,如果结果为0,桶位置不变。

2024-05-27 17:21:10 405

原创 全文索引-FullText

通过倒排索引,可以根据单词快速获取包含这个单词的文档列表。2、MySQL 5.6 及以后的版本,MyISAM 和 InnoDB 存储引擎均支持全文索引。3、只有字段的数据类型为 char、varchar、text 及其系列才可以建全文索引。2、MySQL在大量数据的情况下,全文索引的匹配效率更高,但可能存在精度问题。1、MySQL 5.6 以前的版本,只有 MyISAM 存储引擎支持全文索引。文档1的ID→单词1的信息;文档2的ID→单词3的信息;单词1→文档1的ID;单词2→文档1的ID;

2024-05-23 23:17:56 376

原创 Redis持久化之RDB与AOF

在指定的时间间隔内,将内存的中的数据集快照保存到dump.rdb,一旦发生宕机,则读取RDB文件恢复数据。以日志的形式记录每个写操作,记录所有的写指令到aof文件中,只可添加,不可修改,用于数据恢复。RDB一般用于对数据完整性、一致性要求不高的,即容易数据丢失。AOF重写机制:内容压缩,保留恢复数据的最小指令集。AOF文件大于RDB文件,恢复速度慢于RDB;

2024-05-21 23:30:42 302

原创 yml文件无法生效,读取不了端口号等配置

或者一开始就是叶子的标识也可,插件下载与否没有多大影响,只是作为判断是否生效为Spring项目。2、检查target目录下是否存在配置文件,确保加载进去了。4、检查启动的项目是目标项目,即如图三个名称一致。此时,配置文件需为如图所示的标识。3、检查配置文件的缩进。

2024-05-21 15:18:55 492

原创 2、MySQL总结

B+🆚B树:B树非叶子节点也存放数据,B+树只存放索引,所以B+树单个节点的数据量更小,相同的IO次数,查询到更多的节点;针对快照读:因为RR下只生成一个read view,事务执行过程中看到的数据,一直跟这个事务启动时看到的数据是一致的,即使中途有其他事务插入数据,是查询不出这条数据的。• 当前读:每次读取的都是当前最新的数据,但是读的时候不允许写,写的时候也不允许读。B+🆚二叉树:相同的数据二叉树需要更多的IO次数,二叉树只有两个分支,存储相同的数据,树更高,IO次数更多;

2024-05-13 21:54:23 939

原创 JMeter的下载安装与使用(Mac)

2、下载Binaries 下的apache-jmeter5.5.tgz。option选项卡,chooselanguage--Chinese。在bin目录下打开终端,输入sh jmeter。配置结果树:新建一个csv文件,在文件名位置引入。出现jmeter首页界面,即为成功。

2024-04-25 20:01:09 1434

好用的Chrome扩展程序

Chrome扩展程序 1、篡改候 2、onenote 3、谷歌翻译 4、github加速 5、Adblock Plus:拦截广告

2024-07-02

免费的vue.js devtools chrome VUE 调试工具

免费 亲测有效

2024-03-16

Java工具 redis图形化工具+xshell+xftp

Java工具 redis图形化工具+xshell+xftp 下载安装可用

2023-06-19

104规约模拟工具-PMA与ProIEC104ClientVer1.5免安装版

104规约模拟工具 1.PMA 可模拟主站,从站 2.ProIEC104ClientVer1.5免安装版 可模拟主站,从站可以解析报文

2023-06-15

空空如也

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

TA关注的人

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