自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MBG 逆向工程代码能不能防御 SQL 注入攻击

先说结论,不反射或修改生成的代码,且排序从句不依赖前端数据,就可以防御。直接进入逆向工程生成的代码中检查,那自然是从 MyBatis Generator 生成的 XML 映射文件看起,众所周知,MyBatis 中参数占位符 “#{}” 是可以抵御 SQL 注入的,而字符串拼接 “${}” 则会引入风险;考虑以下生成的 XML 片段,重点关注条件语句和排序从句的构造方式:

2024-04-02 21:12:26 421 3

原创 LC3014 输入单词需要的最少按键次数Ⅰ与方法内容的易读性

文章讨论力扣题目3014,求电话键盘输入单词的最少按键次数。提出三种解法:基于条件逻辑的直观解法;利用求和公式的简洁但难懂解法,作者建议加注释提高易读性;GPT-4提出的较复杂解法。强调代码注释的重要性,尤其是在包含复杂逻辑或数学公式时。

2024-03-10 11:18:12 438

原创 LC39 组合总和问题为什么不能用动态规划解

但显然完全背包问题是不关心最优解的所有组合的(背包问题要求给出最优解的值和一个组合即可)对于开始的 3 个题目示例,这段代码是能够解决问题的,因为示例中满足不同组合数量 ≤ candidates 长度,而动态规划发现解的个数也是基于 candidates 长度的(在遍历 candidates 的过程中发现解)为了更详尽地说明上述结论,我编写了一段失败的动态规划代码示例,运行它,打断点观察规划表和策略表,可以更清晰地察觉到策略中是如何只关心最优解,而导致决策路径无法涉及所有不同组合的。

2024-03-09 15:37:13 439

原创 整理:汉诺塔简析

大体上,要解决一个汉诺塔问题,就需要解决两个更简单的汉诺塔问题

2024-02-03 20:22:06 633

原创 一张图区分Spring Task的3种模式

是的,只有一张图:

2024-01-27 22:36:18 385

原创 一些HTTP、TCP、IP、以太报文结构图

如果图中有错误或希望更多的图例,评论或私聊告诉我就好,我之后再完善上。

2024-01-14 14:56:40 646

原创 网络实训模拟考察题目和答案(华为eNSP综合实验考试)

拓扑中四个交换机五个路由器,共九个设备答案是对应的九个脚本(从设备命名到保存)全部复制粘贴后,从PC1、PC2都是能Ping通服务器的(保及格),其他要求没检查。

2024-01-06 23:09:41 3734

原创 Java 数据结构与算法-堆

在上述代码中,minHeap 是一个最小堆,它的每个元素都是一个长度为 2 的数组,数组的第 1 个数字表示数对的第 1 个数字在数组 nums1 中的下标,第 2 个数字表示数对的第 2 个数字在数组 nums2 中的下标。通常只删除位于堆顶部的元素。如果从第 1 个数组中选出第 k+1 个数字和第 2 个数组中的某个数字组成数对 p,那么该数对之和一定不是和最小的 k 个数对中的一个,这是因为第 1 个数组的前 k 个数字和第 2 个数组中的同一个数字组成的 k 个数对之和都要小于数对 p 之和。

2023-11-06 11:49:27 711

原创 Git 概述、命令、分支,免密登录;及 Idea 集成 GitHub

Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目Git 易于学习,占地面积小,性能极快。它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。其性能优于 Subversion、CVS、Perforce 和 ClearCase 等版本控制工具集中化的版本控制系统诸如 CVS、SVN 等、都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。多年以来,这已成为版本控制系统的标准做法。

2023-10-30 12:04:20 1732 1

原创 Java 数据结构与算法-树

逐一扫描数组中的每个数字。对于每个数字 nums[i],应该先从它前面的 k 个数字中找出小于或等于 nums[i] 的最大的数字,如果这个数字与 nums[i] 的差的绝对值不大于 t,那么就找到了一组符合条件的两个数字。否则,再从它前面的 k 个数字中找出大于或等于 nums[i] 的最小的数字,如果这个数字与 nums[i] 的差的绝对值不大于 t,就找到了一组符合条件的两个数字。例如,将从 0 到 t 的数字放入编号为 0 的桶中,从 t+1 到 2t+1 的数字放入编号为 1 的桶中。

2023-10-23 14:19:34 1408

原创 Java 数据结构与算法-队列

假设计数器时间窗口的大小是 w 毫秒,其中记录的时间是递增的,那么时间窗口中记录的时间的数目是 O(w),因此空间复杂度是 O(w)。如果当前遍历的节点的数目变成 0,那么这一层所有的节点都已经遍历完,可以开始遍历下一层的节点。类型 CBTInserter 的构造函数按照广度优先搜索的顺序从根节点开始遍历输入的完全二叉树,如果一个节点的左右子节点都已经存在,就不可能再在这个节点添加新的子节点,因此可以从队列中删除这个节点,并将它的左右子节点都添加到队列之中……如果该节点有子节点,则将该子节点插入队列。

2023-10-20 10:36:58 82 1

原创 Java 数据结构与算法-栈

题目:输入一个表示小行星的数组,数组中每个数字的绝对值表示小行星的大小,数字的正负号表示小行星运动的方向,正号表示向右飞行,负号表示向左飞行。假设输入数组的长度为 n。但如果直方图中柱子的高度是排序的(递增排序或递减排序),那么每次最矮的柱子都位于直方图的一侧,递归调用的深度就是 O(n),此时分治法的时间复杂度也变成 O(n^2)用单调栈法计算直方图中最大矩阵的面积需要 O(n) 的空间,同时还需要一个长度为 n 的数组 heights,用于记录直方图中柱子的高度,因此这种解法的空间复杂度是 O(n)

2023-10-20 10:31:04 171 1

原创 Java 数据结构与算法-哈希表

由于被删除的数字已经位于数组的尾部,此时删除就不会引起数据移动,因此时间复杂度仍然是 O(1)

2023-10-19 14:21:23 70

原创 Java 数据结构与算法-链表

先让第 1 个指针从链表的头节点开始朝着指向下一个节点的指针先移动 k-1 步,然后让第 2 个指针指向链表的头节点,再让两个指针以相同的速度一起移动,当第 1 个指针到达链表的尾节点时第 2 个指针正好指向倒数第 k 个节点。采用这种方法,在一个没有环的链表中,当快的指针到达链表尾节点的适合慢的指针正好指向链表的中间节点。题目:在一个多级双向链表中,节点除了有两个指针分别指向前后两个节点,还有一个指针指向它的子链表,并且子链表也是一个双向链表,它的节点也有指向子链表的指针。

2023-10-19 14:18:50 57

原创 Java 数据结构与算法-字符串

如果字符串 s2 中包含字符串 s1 的某个变位词,则字符串 s1 至少有一个变位词是字符串 s2 的子字符串。例如,字符串 s1 为 “cbadabacg”,字符串 s2 的两个变位词 “cba” 和 “bac” 是字符串 s1 中的子字符串,输出它们在字符串 s1 中的起始下标 0 和 5。如果将字符串看成一个由字符组成的数组,那么也可以用两个指针来定位一个子字符串,其中一个指针指向字符串的第 1 个字符,另一个指针指向字符串的最后一个字符,两个指针之间所包含的就是一个子字符串。

2023-10-18 09:38:56 81

原创 Java 数据结构与算法-数组

题目:输入一个整数数组,如果一个数字左边的子数组的数字之和等于右边的子数组的数字之和,那么返回该数字的下标。例如,在数组 [1, 7, 3, 6, 2, 9] 中,下标为 3 的数字(值为 6)的左边 3 个数字 1、7、3 的和与右边两个数字 2 和 9 的和相等,都是 11,因此正确的输出值是 3。此时两个指针的移动方向是相同的。如果关于子数组的数字之和的面试题并没有限定数组中的所有数字都是正数,那么可以尝试从第 1 个数字开始累加数组中前面若干数字之和,两个累加的和的差值对应一个子数组的数字之和。

2023-10-18 09:37:08 521

原创 Java 数据结构与算法-整数

例如,输入的字符串数组 words 为 [”abcw”, “foo”, “bar”, “fxyz”, “abcdef”],数组中的字符串 “bar” 与 “foo” 没有相同的字符,它们长度的乘积为 9。Java 中的整数类型都是有符号整数,即如果整数的二进制表示的最高位为 0 则表示其为正数,如果整数的二进制表示的最高位 1 则表示其为负数。例如,输入的 n 为 4,由于 0、1、2、3、4 的二进制形式中 1 的个数分别为 0、1、1、2、1,因此输出数组 [0, 1, 1, 2, 1]

2023-10-17 21:06:32 142

原创 MyBatis的xml文件标签<resultMap>中关于<association>的继承细节

否则查询时会报错 Could not set property ……

2023-10-17 18:16:05 637

原创 HBuilder X 配置 <template> 代码格式化属性换行

【代码】HBuilder X 配置 <template> 代码格式化属性换行。

2023-07-04 11:34:12 1383

原创 微信小程序项目结构

pages 用来存放所有小程序的页面(官方建议把所有小程序的页面,都存放在 pages 目录中,以单独的文件夹存在) index 首页 index.js 页面的脚本文件 index.json 页面的配置文件 index.wxml 页面的模板结构文件 index.wxss 页面的样式表文件 logs 日志页 logs.js logs.json logs.wxml logs.wxss utils 用来存放工具性质的模块(例如:格式化时间的自定义

2023-06-21 15:17:36 81

原创 微信小程序项目中的4种JSON配置文件

【代码】微信小程序项目中的4种JSON配置文件。

2023-06-21 15:12:20 552

原创 整理:Java二叉树遍历(递归、迭代、Morris)原创图解+代码

刷题的时候看到一些二叉树遍历的解法,整理在这里作为笔记,也分享给大家。语言是 Java 的,我会采取代码+图解+说明形式来尽可能讲明白每种遍历方式。

2023-06-08 17:56:17 1563

原创 手搭我的世界基岩版服务器后台网站(LiteloaderBDS-SQLite-Spring Boot-Vue)Java后端+RESTful API;借助Three.js实现三维可视化展览交互界面

本项目旨在为我的世界基岩版私服搭建一个可视化的后台管理系统,通过 LiteloaderBDS 插件实时收集游戏内数据,并将其存储在轻量级数据库 SQLite 中。后端采用 Spring Boot 和 MyBatis 技术栈实现 RESTful API,前端采用 Vue 框架、Element-UI Plus 组件库以及 Three.js WebGL 库实现三维可视化界面

2023-06-02 23:47:34 5218 1

原创 LC1030 距离顺序排列矩阵单元格题解(生长方块)

昨天刷到一道题,做完后发现自己的解法和官方题解有一些差别,故分享一下。

2023-03-31 14:38:28 73

原创 详解Java实现坦克大战小游戏(JavaFX,完整源码+注释说明)

JavaFX实现坦克大战桌面小游戏,原创,包含完整项目代码

2023-03-02 17:18:08 3278 2

原创 详解Java实现2048小游戏(JavaFX,完整源码+注释说明)

一个小游戏程序,写文章记录分享一下

2022-07-13 10:59:29 17408 33

原创 关于Eclipse插件AmaterasUML创建Class Diagram后拖曳java文件生成类图无反应的解决方法

Window-Show View-Project Explorer从Project Explorer栏打开要生成类图的对应java文件,然后拖曳,从Navigator栏进行拖曳是无效的。

2022-01-31 12:32:29 1365 1

空空如也

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

TA关注的人

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