自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

奈川直子

lzhyn.love

  • 博客(75)
  • 收藏
  • 关注

原创 197.上升的温度

Weather 表:编写解决方案,找出与之前(昨天的)日期相比温度更高的所有日期的id。返回结果。结果格式如下例子所示。Weather 表:+----+| id |+----+| 2 || 4 |+----+2015-01-02 的温度比前一天高(10 -> 25)2015-01-04 的温度比前一天高(20 -> 30)

2024-07-19 16:37:11 699

原创 后端|压缩Base64图片的两种方式

Base64是一种将二进制数据编码为ASCII字符串的方法。它通过将3个字节的二进制数据转换为4个可打印字符的ASCII字符,从而将二进制数据转换为可传输的文本格式。Base64编码常用于传输图片或音频文件。Base64编码可以保证数据在传输过程中不丢失,同时可以避免某些系统不支持二进制数据的问题。但是Base64转换成图片之前,如何压缩目标图片的大小呢?方法一:按尺寸压缩(不保证图片质量)

2024-06-10 23:57:19 2192 1

原创 MySQL迁移达梦数据库避坑

dbms_lob.substr函数是Oracle数据库提供的一个函数,用于从LOB(Large Object)类型的列中截取子字符串。在这个查询语句中,它被用来处理RECEIVER列的值,将其转化为可比较的字符串形式,然后与给定的#{receiver}值进行比较。但是在dm8中不可以用String类型的查询条件进行查询,需要转换类型。MySQL中为blob类型,迁移到dm8同样为blob类型。在Mysql中blob可以使用String类型当作查询条件。但是使用dm8数据库执行查询列表方法时,语法冲突。

2024-06-05 17:05:41 576

原创 Java总结的question

保存字符串的数组被final修饰且为私有的,并且String类没有提供/暴露修改这个字符串的方法。String类被final修饰导致其不能被继承,进而避免了子类破坏String不可变。如何理解 String 类型值的不可变?- 知乎提问编译器可以对泛型参数进行检测,并且通过泛型参数可以指定传入的对象类型。比如这行代码就指明了该ArrayList对象只能传入Person对象,如果传入其他类型的对象就会报错。使用泛型的时候加上的类型参数,编译器在编译的时候去掉类型参数。

2023-10-19 20:17:17 214

原创 如何写出优雅的业务代码

存放在common包下PARAMS_ERROR(40000, "请求参数错误"),NOT_LOGIN_ERROR(40100, "未登录"),NO_AUTH_ERROR(40101, "无权限"),NOT_FOUND_ERROR(40400, "请求数据不存在"),FORBIDDEN_ERROR(40300, "禁止访问"),SYSTEM_ERROR(50000, "系统内部异常"),OPERATION_ERROR(50001, "操作失败");/*** 状态码*//*** 信息。

2023-10-19 20:12:18 199

原创 Spring总结的question

切入点可以使用表达式或注解来定义。使用表达式定义切入点时,可以使用。

2023-10-07 19:02:22 310

原创 Kafka与内置Zookeeper常用命令

kafka常用命令

2023-04-10 16:44:38 638 1

原创 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): XXX(已解决)

2、mapper.xm中sql的id是否和Mapper.java接口中的方法名对应。3、mybatis.type-aliases-package是否写对。没有导入mabatis-plus-boot-starter。4、mapper.xml的namespace是否写对。5、mapper.xml中的sql的参数是否写对。下次一定好好看文档5555~1、sql语句是否写对。

2023-03-31 00:20:41 125

原创 利用Thymeleaf实现页面分页

为了方便随取随用具体实现:首页、末页、上一页(变灰)、下一页(变灰)、当前页高亮、页数可视范围、点击页数跳转等等。。

2023-03-18 20:46:16 1514

原创 【MyBatis】学生表格操作

/判断传入的属性,编写查询条件,用if。//编写foreach查询条件的功能ids为id列表。//用where来确定更新部分字段。//用trim来确定更新部分字段。//用set来确定更新部分字段。//返回所有的学生信息。

2023-03-18 15:56:12 939

原创 Dom4j对xml的一系列操作 (简单粗暴型)

对test.xml文件进行处理,实现遍历所有节点,并输出节点内容。增加一个food节点,节点中包含相同的子节点。按节点的内容查询节点是否存在。

2023-03-13 18:50:20 538 1

原创 day40|198.打家劫舍、213.打家劫舍II、337.打家劫舍III

偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。你是一个专业的小偷,计划偷窃沿街的房屋。你可以先偷窃 1 号房屋(金额 = 1),然后偷窃 3 号房屋(金额 = 3)。偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。你不能先偷窃 1 号房屋(金额 = 2),然后偷窃 3 号房屋(金额 = 2), 因为他们是相邻的。你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。,一夜之内能够偷窃到的最高金额。

2023-03-07 20:42:06 258

原创 day39|139.单词拆分 背包问题ending

字符串为背包,单词为物品,截字符串(j-len,j)看是否是一个单词,并且他的前序子串也是一个或多个单词,也就是判断是否为true。因为 "applepenapple"可以由 "apple" "pen" "apple" 拼接成。返回 true 因为 "leetcode" 可以由 "leet" 和 "code" 拼接成。不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。初始化dp[0]=true,否则所有都为false。注意,你可以重复使用字典中的单词。完全背包,重复利用物品,且为排列数。

2023-03-03 21:44:51 799

原创 day38|70. 爬楼梯(进阶)、322. 零钱兑换、279.完全平方数

本题要求是排列数,{2,1}和{1,2}是两种方法,所以先遍历背包。列排序中,阶数1和阶数2都在同层出现,所以会出现{1,2}和{2,1},为排列数。1. 1 阶 + 1 阶 + 1 阶 2. 1 阶 + 2 阶 3. 2 阶 + 1 阶。选出最少的物品数,用min方法,比较上一个物品的dp[j]和需要凑齐本次的物品数+1。选出最少的物品数,用min方法,比较上一个物品的dp[j]和需要凑齐本次的物品数+1。,表示不同面额的硬币;本题为组合数,先遍历物品,再遍历背包。本题为组合数,先遍历物品,再遍历背包。

2023-03-02 13:10:11 308

原创 day37|完全背包、518. 零钱兑换 II、377. 组合总和 Ⅳ 复健运动

例如:coins[2]的价值为5,当遍历到i=2,j=5时,此时dp[5]的值来自上一层coins[1]的dp[5]和本层价值5+价值5所需凑齐到总金额的数,也就是dp[5]=dp[5]+dp[0]所有可能的组合为: (1, 1, 1, 1) (1, 1, 2) (1, 2, 1) (1, 3) (2, 1, 1) (2, 2) (3, 1) 请注意,顺序不同的序列被视作不同的组合。先遍历价值为1的物品,再遍历价值为2的物品,在一行排序中有先有后,所以只会出现{1,2},不会出现{2,1},所以为组合数。

2023-02-28 14:47:56 345

原创 day36|1049. 最后一块石头的重量 II、494. 目标和、474.一和零

有一堆石头,用整数数组stones表示。其中stones[i]表示第i块石头的重量。每一回合,从中选出任意两块石头,然后将它们一起粉碎。假设石头的重量分别为x和y,且x

2023-02-12 22:44:27 329

原创 day35|01背包问题、416. 分割等和子集

如果装该物品,则背包容量= g[10-6] = g[4] + 9 ,也就是 g[10] = g[4] + 6 ,这里的6显然就是新进来的物品的价值,g[10]就是新记录的,对应二维数组里下一层的值,而这里的g[4]是对应二维数组里上一层的值,通俗的来讲:你要找到上一层也就是上一状态下 背包容量为4时的能装的最大价值,用它来更新下一层的这一状态,也就是加入了价值为9的物品的新状态。即将进来的物品重量为6。dp[i][j]:在下标[0,i]的物品任取,放进容量为j的背包,价值总和最大是多少。

2023-02-11 01:01:04 455

原创 day34|343. 整数拆分、96.不同的二叉搜索树

1为头节点时,右子树有两个节点,布局和n=2时两棵树的布局一样(不关心数值,只关心布局)2为头节点时,左子树有一个节点,右子树有一个节点,布局和n=1时一样3为头节点时,左子树有两个节点,布局和n=2时两棵树的布局一样dp[3]就是 元素1为头结点搜索树的数量 + 元素2为头结点搜索树的数量 + 元素3为头结点搜索树的数量元素1为头结点搜索树的数量 = 右子树有2个元素的搜索树数量 * 左子树有0个元素的搜索树数量元素2为头结点搜索树的数量 = 右子树有1个元素的搜索树数量 * 左子树有

2023-02-09 20:11:58 382

原创 day33|62.不同路径、63. 不同路径 II

dp[i][j] = dp[i - 1][j] + dp[i][j - 1],dp[i][j]都是从其上方和左方推导而来,那么从左到右、从上到下遍历。dp[i][j] = dp[i - 1][j] + dp[i][j - 1],dp[i][j]都是从其上方和左方推导而来,那么从左到右、从上到下遍历。求dp[i][j],只能有两个方向来推导出来,即dp[i - 1][j] 和 dp[i][j - 1]。求dp[i][j],只能有两个方向来推导出来,即dp[i - 1][j] 和 dp[i][j - 1]。

2023-02-08 17:07:32 582

原创 day32|509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯。dp=death people 它说要教我做人

选最小的,所以dp[i] = min(dp[i - 1] + cost[i - 1], dp[i - 2] + cost[i - 2])还有就是dp[i - 2],上i-2层楼梯,有dp[i - 2]种方法,再一步跳两个台阶就是dp[i]。首先是dp[i - 1],上i-1层楼梯,有dp[i - 1]种方法,再一步跳一个台阶就是dp[i]。dp[i - 1] 跳到 dp[i] 需要花费 dp[i - 1] + cost[i - 1]。所以dp[i] = dp[i - 1] + dp[i - 2]。

2023-02-08 00:28:27 294

原创 day31|738.单调递增的数字。贪心终于摆完了,扔了两道题,我像是依托答辩orz

局部最优:遇到chars[i] > chars[i+1]的情况,让chars[i]-,然后chars[i+1]为9,可以保证这两位变成最大单调递增整数。但这里局部最优推出全局最优,还需要其他条件,即遍历顺序,和。例如332,最小的单调递增数为329->299。全局最优:得到小于等于N的最大单调递增的整数。当且仅当每个相邻位数上的数字。的最大数字,且数字呈。时,我们称这个整数是。

2023-02-07 16:24:04 98

原创 day30|435. 无重叠区间、763.划分字母区间、56. 合并区间

像 "ababcbacadefegde", "hijhklij" 这样的划分是错误的,因为划分的片段数较少。的区间,所以从左向右遍历,留给下一个区间的空间大一些,从而尽量避免交叉。返回 需要移除区间的最小数量,使剩余区间互不重叠。你需要移除两个 [1,2] 来使剩下的区间没有重叠。一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。区间 [1,4] 和 [4,5] 可被视为重叠区间。移除 [1,3] 后,剩下的区间没有重叠。返回一个表示每个字符串片段的长度的列表。区间的个数就是需要移除的区间个数了。

2023-02-05 23:50:17 233

原创 day29|860.柠檬水找零、406.根据身高重建队列、452. 用最少数量的箭引爆气球

编号为 2 的人身高为 5 ,有 2 个身高更高或者相同的人排在他前面,即编号为 0 和 1 的人。编号为 3 的人身高为 6 ,有 1 个身高更高或者相同的人排在他前面,即编号为 1 的人。编号为 4 的人身高为 4 ,有 4 个身高更高或者相同的人排在他前面,即编号为 0、1、2、3 的人。因此 [[5,0],[7,0],[5,2],[6,1],[4,4],[7,1]] 是重新构造后的队列。编号为 5 的人身高为 7 ,有 1 个身高更高或者相同的人排在他前面,即编号为 1 的人。

2023-02-05 00:23:39 126

原创 day28|1005.K次取反后最大化的数组和、134. 加油站、135. 分发糖果

你无法返回 2 号加油站,因为返程需要消耗 4 升汽油,但是你的油箱只有 3 升汽油。开往 3 号加油站,你需要消耗 5 升汽油,正好足够你返回到 3 号加油站。选择下标 (1, 2, 2) ,nums 变为 [3,1,0,2]。选择下标 (1, 4) ,nums 变为 [2,3,-1,5,4]。开往 2 号加油站,此时油箱有 6 - 4 + 3 = 5 升汽油。开往 0 号加油站,此时油箱有 4 - 3 + 2 = 3 升汽油。开往 1 号加油站,此时油箱有 3 - 3 + 3 = 3 升汽油。

2023-02-04 01:20:44 443

原创 day27|122.买卖股票的最佳时机II、55. 跳跃游戏、45.跳跃游戏II

在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3。在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。在这种情况下, 交易无法获得正利润,所以不参与交易可以获得最大利润,最大利润为 0。

2023-02-02 00:38:43 80

原创 day26|455.分发饼干、376. 摆动序列、53. 最大子序和。进军贪心

在计算是否有峰值的时候,计算prediff与curdiff,如果(prediff0)或者(prediff>=0&&curdiff

2023-02-01 17:43:02 483

原创 day25|51.N皇后、37.解数独

按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n 皇后问题 研究的是如何将 个皇后放置在 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 ,返回所有不同的 n 皇后问题 的解决方案。每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 和 分别代表了皇后和空位。示例 1:示例 2: 问题分析:1、递归函数参数定义全局变量二维数组result来记录最终结果。参数n是棋盘的大小,然后用row来记录当前遍历到棋盘的第几层了。2、递归终止条件当递归到棋盘最底

2023-01-29 22:31:33 315

原创 day24|491.递增子序列、46.全排列、47.全排列 II

本题不用startIndex,因为元素1在[1,2]中已经使用过了,但是在[2,1]中还要在使用一次1,所以处理排列问题就不用使用startIndex了。①如果单层遍历到第二个数字之后(path里已经有数字了)如果比当前path中最后一个数字小,就不是递增子序列,就继续向树层后遍历。②如果树层出现过遍历到的数字,就继续向树层后遍历(用getOrDefault方法)数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。,找出并返回所有该数组中不同的递增子序列,递增子序列中。

2023-01-28 20:59:09 764 1

原创 day23|93.复原IP地址、78.子集、90.子集II

循环中 [startIndex, i] 这个区间就是截取的子串,需要判断这个子串是否合法。递归调用时,下一层递归的startIndex要从i+2开始(因为需要在字符串中加入了分隔符。一开始写成了 if (i>0&&nums[i]==nums[i-1])结果报错,问了大佬们。,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。字符串s,分割线startIndex,逗点记录pointsum。),同时记录分割符的数量pointnum 要 +1。,用以表示一个 IP 地址,返回所有可能的。

2023-01-27 22:21:41 376

原创 day22|39. 组合总和、40.组合总和II、131.分割回文串

2 和 3 可以形成一组候选,2 + 2 + 3 = 7。注意 2 可以使用多次。7 也是一个候选, 7 = 7。如果至少一个数字的被选数量不同,则两种组合是不同的。,并以列表形式返回。中可以使数字和为目标数。对于给定的输入,保证和为。

2023-01-26 16:21:38 852 1

原创 day21|216.组合总和III、17.电话号码的字母组合

i到9一共有9-i+1个元素,而当前还需要k-path.size()个元素,所以必须满足9-i+1>=k-path.size(),移项就可以得到i 1,没有有效的组合。的字符串,返回所有它能表示的字母组合。

2023-01-25 22:44:22 778

原创 day20|77. 组合。回溯的开始

例如,n = 4,k = 3, 目前已经选取的元素为0(path.size为0),n - (k - 0) + 1 即 4 - ( 3 - 0) + 1 = 2。本题参数为:n(数的范围是[1-n])、k(k个数为一组)、startIndex(记录当前层搜索开始的位置,初始为1),类型都为int。在集合n中至多要从该起始位置 : i

2023-01-25 16:52:36 602

原创 二叉树专题汇总

一刷:9day,还是比较菜狗的。

2023-01-21 23:29:53 1365

原创 day19|669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树

当删除0后,需要继续向右子树遍历,不能直接return root.right,因为可能会有比low小的节点1也直接返回给了7的左子树方向。改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代子代关系都应当保留)。当遍历到节点不在范围内,需删除。此时不能return null,而是要继续遍历此节点的子树。所以结果应当返回修剪好的二叉搜索树的新的根节点。注意,根节点可能会根据给定的边界发生改变。通过修剪二叉搜索树,使得所有节点的值在。给你二叉搜索树的根节点。

2023-01-20 22:50:08 831

原创 day18|235. 二叉搜索树的最近公共祖先、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点

当p和q的值小于根节点,说明都在左子树,当p、q的值大于根节点,说明都在右子树,如果根节点的值在p、q的之间,说明此时根节点就是最近的公共祖先。中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。,新值和原始二叉搜索树中的任意节点值都不同。

2023-01-19 22:19:47 1740

原创 day17|530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先

中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。给你一个含重复值的二叉搜索树(BST)的根节点。差值是一个正数,其数值等于两值之差的绝对值。因为根据定义最近公共祖先节点可以为节点本身。,找出并返回 BST 中的所有。如果树中有不止一个众数,可以按。给你一个二叉搜索树的根节点。(即,出现频率最高的元素)。的最近公共祖先是节点。的最近公共祖先是节点。

2023-01-19 15:32:43 1511

原创 day16|654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树

[2,1] 中的最大值是 2 ,左边部分是 [] ,右边部分是 [1]。- [3,2,1,6,0,5] 中的最大值是 6 ,左边部分是 [3,2,1] ,右边部分是 [0,5]。- [3,2,1] 中的最大值是 3 ,左边部分是 [] ,右边部分是 [2,1]。- 只有一个元素,所以子节点是一个值为 1 的节点。如果左右指针的差小于1,表示已经没有节点了 如果左右指针的差等于1,表示只有一个节点,直接放到二叉树。- [0,5] 中的最大值是 5 ,左边部分是 [0] ,右边部分是 []。

2023-01-17 22:34:28 495

原创 day15|513.找树左下角的值、112. 路径总和、113.路径总和ii、106.从中序与后序遍历序列构造二叉树、105.从前序与中序遍历序列构造二叉树

树中存在两条根节点到叶子节点的路径: (1 --> 2): 和为 3 (1 --> 3): 和为 4 不存在 sum = 5 的根节点到叶子节点的路径。递归法:找到最底层的左叶子 递归和回溯,左遍历必须在前,无论多深,左先遍历,一定最先找到左节点的值。不存在 sum = 5 的根节点到叶子节点的路径。由于树是空的,所以不存在根节点到叶子节点的路径。由于树是空的,所以不存在根节点到叶子节点的路径。等于目标和的根节点到叶节点路径如上图所示。等于目标和的根节点到叶节点路径如上图所示。假设二叉树中至少有一个节点。

2023-01-15 23:17:14 445

原创 day14|110.平衡二叉树、257. 二叉树的所有路径、404.左叶子之和

递归法:利用后序遍历,分别求出其左右子树的高度, 如果差值小于等于1,则返回当前二叉树的高度,否则返回-1,表示已经不是二叉平衡树了。在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24。给定一个二叉树,判断它是否是高度平衡的二叉树。的左右两个子树的高度差的绝对值不超过 1。给你一个二叉树的根节点。,返回所有从根节点到叶子节点的路径。是指没有子节点的节点。,返回所有左叶子之和。

2023-01-13 22:59:16 282

原创 day13|559.n叉树的最大深度、222.完全二叉树的节点个数

求出该树的节点个数。完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。给定一个 N 叉树,找到其最大深度。最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。N 叉树输入按层序遍历序列化表示,每组子节点由空值分隔(请参见示例)。同111题,利用递归,根节点的高度就是整个二叉树的深度。

2023-01-13 18:54:15 1121

空空如也

空空如也

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

TA关注的人

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