- 博客(49)
- 收藏
- 关注
原创 二叉树专题-Java实现
大一学数据结构时都是用C++写的,当时学的一脸懵,代码写的一般。前段时间刷题还是用C++,但是其实具体使用也忘得差不多了。现在走Java路线了,想着加强一下数据结构和算法,再回顾一遍,用Java写一遍,也相当于是新学习一遍了。有的地方可能写的不规范,有问题请留言指教,会及时更正的~
2025-04-14 13:38:44
192
原创 @Mapper(componentModel = MappingConstants.ComponentModel.SPRING)
**`componentModel = MappingConstants.ComponentModel.SPRING`**:指定生成的映射器实现类是一个 Spring 组件(即带有 `@Component` 注解),可以被 Spring 容器管理并注入到其他组件中。// 注入 CityMapper。- **`CityPO2VOMapper`**:将 `CityPO` 转换为 `CityVO`。- **`CityMapper`**:将 `CityDTO` 转换为 `CityPO`。
2025-02-17 17:32:39
430
原创 56.合并区间
用a数组作为结果数组,将数组按照左端点升序排序,然后将第一个区间加入a 数组中,并按序依次考虑之后的每个区间:如果当前区间的左端点在数组 a 中最后一个区间的右端点之后,那么它们不会重合,直接将这个区间加入数组 a 的末尾;否则,它们重合,需要用当前区间的右端点更新数组 a 中最后一个区间的右端点,将其置为二者的较大值。区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。区间 [1,4] 和 [4,5] 可被视为重叠区间。
2024-12-15 18:46:39
264
原创 第三章 数据链路层-复习习题
当接收方发送 ACK3 时,这意味着接收方已经正确接收了帧序号为 0、1、2 的帧,并且期望接收的下一帧是帧序号为 3 的帧。1.在滑动窗口流量控制机制中,ACK(确认)信号用于通知发送方接收方已经正确接收了哪些帧,并且期望接收的下一帧的序号。在选择重传协议中,当帧的序号字段为3比特,且接收窗口与发送窗口尺 寸相同时,发送窗口的最大尺寸为()。若数据链路的发送窗口尺寸WT =4,在发送3号帧、并接到2号帧的确认帧后, 发送方还可连续发送()。A. 2帧 B. 3帧 C. 4帧 D. 1帧。
2024-12-13 11:23:08
351
原创 70. 爬楼梯
动态规划,把大问题拆解成小问题,到第i层的方案数是到第i-1层和到第i-2层的方案数之和。你有多少种不同的方法可以爬到楼顶呢?优化空间 ,优化后空间复杂度为O(1)1. 1 阶 + 1 阶 + 1 阶。有两种方法可以爬到楼顶。1. 1 阶 + 1 阶。有三种方法可以爬到楼顶。2. 1 阶 + 2 阶。3. 2 阶 + 1 阶。空间复杂度为O(n)
2024-12-12 19:47:19
186
原创 104. 二叉树的最大深度
递归思想,可以采用先序遍历遍历整棵树,分别求左子树和右子树的深度,一层层往里遍历,取最大值作为整棵树的深度。是指从根节点到最远叶子节点的最长路径上的节点数。
2024-12-12 19:30:19
166
原创 73.矩阵置零
使用两个标记变量,对第一行和第一列进行处理,如果第一行或第一列有0,用标记变量记录,但并不立即进行处理。接着判断剩下的元素,如果为0,则该行、该列的第一个元素为0;如果该行、该列的第一个元素为0,那么对应横、纵坐标的这个元素也为0。最后再对第一行、第一列的元素赋值为0。遍历矩阵,额外使用数组记录为0元素的横、纵坐标。空间复杂度:O(m+n)时间复杂度:O(mn)时间复杂度:O(mn),则将其所在行和列的所有元素都设为。空间复杂度:O(1)的矩阵,如果一个元素为。
2024-12-11 10:37:02
404
原创 53. 最大子数组和
给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。是数组中的一个连续部分。6连续子数组 [4,-1,2,1] 的和最大,为 6。nums = [1]123如果你已经实现复杂度为O(n)的解法,尝试使用更为精妙的求解。动态规划:通过子问题求解原问题,常用来求解最优化问题,不仅包含重叠子问题,还具有两外两大特性:最优子结构、无后效性。
2024-12-09 11:55:47
307
原创 15.三数之和
第一层遍历元素指针记为i,开始第二层遍历之前要判重,跳过重复的元素。在第二层遍历里使用双指针:l从左往右遍历,r从右往左遍历(l和r的和是固定的,l要增大,r就要减小,所以是相向的),判断满满足条件的,push_back三元组。我们忽略存储答案的空间,额外的排序的空间复杂度为 O(logN)。然而我们修改了输入的数组 nums,在实际情况下不一定允许,因此也可以看成使用了一个额外的数组存储了 nums 的副本并进行排序,空间复杂度为 O(N)。注意,输出的顺序和三元组的顺序并不重要。这题也是双指针的应用。
2024-12-06 13:09:34
357
原创 283.移动零
采用双指针,一个fast指针遍历整个数组,把非零的元素提到数组前面,一个slow指针把容器剩下的赋值为0。移动到数组的末尾,同时保持非零元素的相对顺序。,必须在不复制数组的情况下原地对数组进行操作。你能尽量减少完成的操作次数吗?,编写一个函数将所有。
2024-12-05 10:48:36
176
原创 169.多数元素
对于每种情况,数组上面的线表示如果众数是数组中的最小值时覆盖的下标,数组下面的线表示如果众数是数组中的最大值时覆盖的下标。对于其他的情况,这条线会在这两种极端情况的中间。对于这种算法,我们先将 nums 数组排序,然后返回上文所说的下标对应的元素。在下图中,第一个例子是 n 为奇数的情况,第二个例子是 n 为偶数的情况。如果将数组 nums 中的所有元素按照单调递增或单调递减的顺序排序,那么下标为 ⌊。:用哈希表,键:数组值,值:出现的次数。你可以假设数组是非空的,并且给定的数组总是存在多数元素。
2024-12-04 16:04:56
311
原创 136. 只出现一次的数字
经典的位运算,可以用异或来做。初始和0做异或,不改变数值,相同的数做异或运算的结果还是0,最后剩下只出现一次的数字。,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。3.异或运算满足交换律和结合律,即 a⊕b⊕a=b⊕a⊕a=b⊕(a⊕a)=b⊕0=b。1.任何数和 0 做异或运算,结果仍然是原来的数,即 a⊕0=a。时间复杂度:O(n),其中 n 是数组长度。2.任何数和其自身做异或运算,结果是 0,即 a⊕a=0。的算法来解决此问题,且该算法只使用常量额外空间。
2024-12-04 15:17:33
243
原创 PO、VO、BO、DO、DAO、DTO、POJO
一文彻底弄懂Java中的PO、VO、BO、DO、DAO、DTO、POJO - 知乎一篇文章讲清楚VO,DTO,PO,DAO的区别 - 知乎PO,VO,DAO,BO,POJO一脸懵?一张图给你解释清楚-腾讯云开发者社区-腾讯云
2024-12-03 09:39:29
130
原创 掘金AI刷题打卡~
葫芦”由五张牌组成,其中包括三张相同牌面值的牌 aa 和另外两张相同牌面值的牌 bb。如果两个人同时拥有“葫芦”,我们会优先比较牌 aa 的大小,若牌 aa 相同则再比较牌 bb 的大小。牌面值的大小规则为:A > K > Q > J > 10 > 9 > ... > 2,其中 A 的牌面值为1,K 为13,依此类推。给定一组牌,你需要找到符合规则的最大的“葫芦”组合,并输出其中三张相同的牌面和两张相同的牌面。有个地方需要注意:A的值是1,但是牌面值最大的,要转换一下。
2024-11-09 16:35:53
179
原创 掘金AI刷题打卡~
先把头部的‘0’去掉,然后截取小数点前的字符串,对它进行处理:从尾部遍历,每三个字符就插入一个',',要注意如果原来的字符串长度刚好是3的倍数,就会多插一个',',所以在插入后判断一下,做个去除。小M在工作时遇到了一个问题,他需要将用户输入的不带千分位逗号的数字字符串转换为带千分位逗号的格式,并且保留小数部分。小M还发现,有时候输入的数字字符串前面会有无用的。可能的字符串:没有小数点及后面的部分、有小数点及后面的部分,再细分可以分为有前导0、无前导0。请你帮助小M编写程序,完成这个任务。
2024-11-07 20:07:10
476
原创 Java之String类相关复习
内容来源于下面这道题,写的时候用到了int和String相互转换以及String字符串反转。或者法二:String转成StringBuilder,然后用他的reverse方法,再转成String。
2024-11-06 19:27:23
219
原创 掘金AI刷题打卡~
小U和小R喜欢探索二进制数字的奥秘。他们想找到一个方法,将两个二进制字符串相加并以十进制的形式呈现。这个过程需要注意的是,他们的二进制串可能非常长,所以常规的方法可能无法处理大数。小U和小R希望你帮助他们设计一个算法,该算法能在保证时间复杂度不超过。的前提下,返回两个二进制字符串的十进制求和结果。用Java的BigInteger类,太方便了!
2024-10-28 14:44:13
233
原创 掘金AI刷题~SQL代码补全功能~题解
在开发SQL编辑器时,实现自动补全功能是提高用户体验的重要一环。小C需要实现一个功能,根据用户输入的字符片段,快速从已知的SQL关键字和数据库相关名称中找到所有以该片段开头的候选词,并按字典序输出。如果在提示中只有一个选项符合,如输入。时,编辑器需要自动提示以。开头的所有可能选项,如。
2024-10-28 14:16:58
156
原创 数字分组求偶数和
小M面对一组从 1 到 9 的数字,这些数字被分成多个小组,并从每个小组中选择一个数字组成一个新的数。目标是使得这个新数的各位数字之和为偶数。任务是计算出有多少种不同的分组和选择方法可以达到这一目标。
2024-10-27 16:49:30
252
原创 关于引入itextpdf包没有对应版本的解决方法
点击IDEA中的project structure--->Libraries--->点+号,输入要引入的包名,搜索,选择要下的包,勾选下载到...,点击OK,完成!今天想根据模板做一个PDF生成功能,引入itextpdf依赖,版本号始终爆红,后来试了一些方法,成功解决这个问题。
2024-09-24 10:48:41
847
原创 【P1605 迷宫】
对于 100%100% 的数据,1≤N,M≤5,1≤T≤10,1≤SX,FX≤n,1≤SY,FY≤m。第二行为四个正整数 SX,SY,FX,FY,SX,SY 代表起点坐标,FX,FY 代表终点坐标。给定起点坐标和终点坐标,每个方格最多经过一次,问有多少种从起点坐标到终点坐标的方案。给定一个 N×M 方格的迷宫,迷宫里有 T 处障碍,障碍处不可通过。第一行为三个正整数 N,M,T,分别表示迷宫的长宽和障碍总数。接下来 T 行,每行两个正整数,表示障碍点的坐标。输出从起点坐标到终点坐标的方案总数。
2024-03-30 11:19:19
167
原创 [蓝桥杯 2013 省 AB] 错误票据
一个整数 $N(N<100)$ 表示后面数据行数,接着读入 $N$ 行数据,每行数据长度不等,是用空格分开的若干个(不大于 $100$ 个)正整数(不大于 $10^5$),每个整数代表一个 ID 号。每张票据有唯一的 ID 号,全年所有票据的 ID 号是连续的,但 ID 的开始数码是随机选定的。要求程序首先输入要求程序输出 $1$ 行,含两个整数 $m$,$n$,用空格分隔,其中,$m$ 表示断号 ID,$n$ 表示重号 ID。### 样例输入 #1。### 样例输出 #1。### 样例输出 #2。
2024-03-18 19:41:21
603
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人