自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 springboot中实现上传下载功能

由于项目中需要用户上传文件和下载文件,则后端中需要写相应的接口

2022-06-01 21:36:21 281

原创 mybatis-plus存取json数据到数据库

储存json数据到数据库需求:mysql中json字段,映射到java实体类,实现存取功能储存如果您的需求里仅仅是将所存入数据作为一个存储持久化和展示的功能,那么对您的数据库版本基本无要求,只需要使用MyBatis-Plus的注解即可,并讲实体类属性设为List @TableField(typeHandler = FastjsonTypeHandler.class)。在Controller中接受参数使用List接收即可读取mybatis不能直接读取Json字段,用mybatis-pl

2022-05-28 00:23:07 1563 2

原创 为什么覆盖equals()方法的时候,必须要覆盖hashCode()方法

原理当你把对象加入 HashSet 时,HashSet 会先计算对象的 hashcode 值来判断对象加入的位置,同时也会与其他已经加入的对象的 hashcode 值作比较,如果没有相符的hashcode,HashSet会假设对象没有重复出现。但是如果发现有相同 hashcode 值的对象,这时会调用 equals()方法来检查 hashcode 相等的对象是否真的相同。如果两者相同,HashSet 就不会让其加入操作成功。如果不同的话,就会重新散列到其他位置。(摘自我的Java启蒙书《Head firs

2022-04-18 12:25:05 784

原创 Mybatis-plus实现记录自动填充时间字段

需求springboot项目中,需要记录用户创建时间和最后登录时间实现数据库创建字段实体类字段属性上需要增加注解 @TableField(fill = FieldFill.INSERT) @ApiModelProperty("注册时间") private Date registerTime; @TableField(fill = FieldFill.INSERT_UPDATE) @ApiModelProperty("上次登录时间") priv

2022-04-08 14:09:02 711

原创 393. UTF-8 编码验证

题目给定一个表示数据的整数数组 data ,返回它是否为有效的 UTF-8 编码。UTF-8 中的一个字符可能的长度为 1 到 4 字节,遵循以下的规则:对于 1 字节 的字符,字节的第一位设为 0 ,后面 7 位为这个符号的 unicode 码。对于 n 字节 的字符 (n > 1),第一个字节的前 n 位都设为1,第 n+1 位设为 0 ,后面字节的前两位一律设为 10 。剩下的没有提及的二进制位,全部为这个符号的 unicode 码。题解class Solution { p

2022-03-13 12:52:37 432

原创 配置springMVC出现500

问题简单的springmvc项目运行出现500报错web.xml配置Servlet出错(DispatcherServlet)无法导入相关包解决删除maven包下的相关包,重新下载。

2022-02-07 21:14:28 340

原创 Node打开mysql拒绝

问题使用node的mysql模块打开本地mysql的时候报错:Error: ER_ACCESS_DENIED_ERROR: Access denied for user ‘root’@‘localhost’ (using password: YES)解决方式:在mysql文件夹中配置my.ini文件在[mysqld]下面添加skip-grant-tables重启mysql后连接成功!...

2022-01-09 18:07:26 613 1

原创 390. 消除游戏

题目列表 arr 由在范围 [1, n] 中的所有整数组成,并按严格递增排序。请你对 arr 应用下述算法:从左到右,删除第一个数字,然后每隔一个数字删除一个,直到到达列表末尾。重复上面的步骤,但这次是从右到左。也就是,删除最右侧的数字,然后剩下的数字每隔一个删除一个。不断重复这两步,从左到右和从右到左交替进行,直到只剩下一个数字。给你整数 n ,返回 arr 最后剩下的数字。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/eliminat

2022-01-02 13:14:46 3236

原创 179. 最大数

题目给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。代码class Solution { public String largestNumber(int[] nums) { int n = nums.length; String[] s = new String[n]; for (int i = 0; i < n; i++) {

2021-12-31 16:07:35 148

原创 128. 最长连续序列

题目给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为 O(n) 的算法解决此问题。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-consecutive-sequence著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。代码class Solution { public int longestConsecutive(int

2021-12-31 15:02:12 253

原创 93. 复原 IP 地址

题目有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 ‘.’ 分隔。例如:“0.1.2.201” 和 “192.168.1.1” 是 有效 IP 地址,但是 “0.011.255.245”、“192.168.1.312” 和 “192.168@1.1” 是 无效 IP 地址。给定一个只包含数字的字符串 s ,用以表示一个 IP 地址,返回所有可能的有效 IP 地址,这些地址可以通过在 s 中插入 ‘.’ 来形成。你不能重新排序或删除 s 中的任

2021-12-28 13:30:17 907

原创 31. 下一个排列

题目实现获取 下一个排列 的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列(即,组合出下一个更大的整数)。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须 原地 修改,只允许使用额外常数空间。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/next-permutation著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。代码class Solution { public

2021-12-27 19:39:14 231

原创 148. 排序链表

题目给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。进阶:你可以在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序吗?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/sort-list著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。代码public class Solution { public ListNode sortList(ListNode head)

2021-12-26 23:51:48 381

原创 1705. 吃苹果的最大数目

题目有一棵特殊的苹果树,一连 n 天,每天都可以长出若干个苹果。在第 i 天,树上会长出 apples[i] 个苹果,这些苹果将会在 days[i] 天后(也就是说,第 i + days[i] 天时)腐烂,变得无法食用。也可能有那么几天,树上不会长出新的苹果,此时用 apples[i] == 0 且 days[i] == 0 表示。你打算每天 最多 吃一个苹果来保证营养均衡。注意,你可以在这 n 天之后继续吃苹果。给你两个长度为 n 的整数数组 days 和 apples ,返回你可以吃掉的苹果的最大

2021-12-24 14:07:04 347

原创 33. 搜索旋转排序数组

题目整数数组 nums 按升序排列,数组中的值 互不相同 。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], …, nums[n-1], nums[0], nums[1], …, nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2] 。给你 旋转后 的数组 nums 和一个整数

2021-12-23 15:06:20 671

原创 855. 考场就座

题目在考场里,一排有 N 个座位,分别编号为 0, 1, 2, …, N-1 。当学生进入考场后,他必须坐在能够使他与离他最近的人之间的距离达到最大化的座位上。如果有多个这样的座位,他会坐在编号最小的座位上。(另外,如果考场里没有人,那么学生就坐在 0 号座位上。)返回 ExamRoom(int N) 类,它有两个公开的函数:其中,函数 ExamRoom.seat() 会返回一个 int (整型数据),代表学生坐的位置;函数 ExamRoom.leave(int p) 代表坐在座位 p 上的学生现在离

2021-12-21 20:10:07 166

原创 391. 完美矩形

题目给你一个数组 rectangles ,其中 rectangles[i] = [xi, yi, ai, bi] 表示一个坐标轴平行的矩形。这个矩形的左下顶点是 (xi, yi) ,右上顶点是 (ai, bi) 。如果所有矩形一起精确覆盖了某个矩形区域,则返回 true ;否则,返回 false 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/perfect-rectangle著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处

2021-12-21 19:12:11 4013

原创 42. 接雨水

题目给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。代码class Solution { public int trap(int[] height) { int left =0 ,right =height.length-1; int l_max=0,r_max=0;//记录目前最高 int res =0; while (left<right){

2021-12-20 20:28:29 83

原创 224. 基本计算器

题目给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。代码class Solution { public int calculate(String s) { List<Character> list = new ArrayList<>(); for (int i = 0; i < s.length(); i++) { list.add(s.charAt(i)); }

2021-12-20 20:05:04 100

原创 969. 煎饼排序

题目给你一个整数数组 arr ,请使用 煎饼翻转 完成对数组的排序。一次煎饼翻转的执行过程如下:选择一个整数 k ,1 <= k <= arr.length反转子数组 arr[0…k-1](下标从 0 开始)例如,arr = [3,2,1,4] ,选择 k = 3 进行一次煎饼翻转,反转子数组 [3,2,1] ,得到 arr = [1,2,3,4] 。以数组形式返回能使 arr 有序的煎饼翻转操作所对应的 k 值序列。任何将数组排序且翻转次数在 10 * arr.length 范围内

2021-12-19 19:55:27 141

原创 659. 分割数组为连续子序列

题目给你一个按升序排序的整数数组 num(可能包含重复数字),请你将它们分割成一个或多个长度至少为 3 的子序列,其中每个子序列都由连续整数组成。如果可以完成上述分割,则返回 true ;否则,返回 false 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/split-array-into-consecutive-subsequences著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。代码class Solutio

2021-12-19 19:31:17 3361

原创 743. 网络延迟时间

题目有 n 个网络节点,标记为 1 到 n。给你一个列表 times,表示信号经过 有向 边的传递时间。 times[i] = (ui, vi, wi),其中 ui 是源节点,vi 是目标节点, wi 是一个信号从源节点传递到目标节点的时间。现在,从某个节点 K 发出一个信号。需要多久才能使所有节点都收到信号?如果不能使所有节点收到信号,返回 -1 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/network-delay-time著作权归

2021-12-18 15:46:49 411

原创 1584. 连接所有点的最小费用

题目给你一个points 数组,表示 2D 平面上的一些点,其中 points[i] = [xi, yi] 。连接点 [xi, yi] 和点 [xj, yj] 的费用为它们之间的 曼哈顿距离 :|xi - xj| + |yi - yj| ,其中 |val| 表示 val 的绝对值。请你返回将所有点连接的最小总费用。只有任意两点之间 有且仅有 一条简单路径时,才认为所有点都已连接。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/min-cost-

2021-12-17 19:59:38 110

原创 990. 等式方程的可满足性

题目给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程 equations[i] 的长度为 4,并采用两种不同的形式之一:“a==b” 或 “a!=b”。在这里,a 和 b 是小写字母(不一定不同),表示单字母变量名。只有当可以将整数分配给变量名,以便满足所有给定的方程时才返回 true,否则返回 false。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/satisfiability-of-equality-equations著

2021-12-17 18:02:00 78

原创 886. 可能的二分法

题目给定一组 N 人(编号为 1, 2, …, N), 我们想把每个人分进任意大小的两组。每个人都可能不喜欢其他人,那么他们不应该属于同一组。形式上,如果 dislikes[i] = [a, b],表示不允许将编号为 a 和 b 的人归入同一组。当可以用这种方法将所有人分进两组时,返回 true;否则返回 false。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/possible-bipartition著作权归领扣网络所有。商业转载请联系

2021-12-17 16:47:42 164

原创 18. 四数之和

题目给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复):0 <= a, b, c, d < na、b、c 和 d 互不相同nums[a] + nums[b] + nums[c] + nums[d] == target你可以按 任意顺序 返回答案 。来源:力扣(LeetCode)链接:ht

2021-12-16 19:26:43 80

原创 200. 岛屿数量

题目给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/number-of-islands著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。代码class Solution { public int numIs

2021-12-16 15:46:46 66

原创 56. 合并区间

题目以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/merge-intervals著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。代码class Solution { public int[][] me

2021-12-15 15:48:21 81

原创 241. 为运算表达式设计优先级

题目给定一个含有数字和运算符的字符串,为表达式添加括号,改变其运算优先级以求出不同的结果。你需要给出所有可能的组合的结果。有效的运算符号包含 +, - 以及 * 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/different-ways-to-add-parentheses著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。代码class Solution { HashMap<String,List<I

2021-12-15 14:33:50 1658

原创 851. 喧闹和富有

题目有一组 n 个人作为实验对象,从 0 到 n - 1 编号,其中每个人都有不同数目的钱,以及不同程度的安静值(quietness)。为了方便起见,我们将编号为 x 的人简称为 "person x "。给你一个数组 richer ,其中 richer[i] = [ai, bi] 表示 person ai 比 person bi 更有钱。另给你一个整数数组 quiet ,其中 quiet[i] 是 person i 的安静值。richer 中所给出的数据 逻辑自恰(也就是说,在 person x 比 p

2021-12-15 14:04:51 94

原创 398. 随机数索引

题目给定一个可能含有重复元素的整数数组,要求随机输出给定的数字的索引。 您可以假设给定的数字一定存在于数组中。注意:数组大小可能非常大。 使用太多额外空间的解决方案将不会通过测试。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/random-pick-index著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。代码class Solution { int[] res; int[] nums; p

2021-12-14 19:40:39 113

原创 372. 超级次方

题目你的任务是计算 ab 对 1337 取模,a 是一个正整数,b 是一个非常大的正整数且会以数组形式给出。代码class Solution { int base=1337; int myPow(int a,int k){//a^k if (k==0) return 1; a %=base; if (k%2==1) return a*myPow(a,k-1)%base;//若k是奇数 else {// k 是偶数

2021-12-14 17:08:56 75

原创 793. 阶乘函数后 K 个零

题目f(x) 是 x! 末尾是 0 的数量。(回想一下 x! = 1 * 2 * 3 * … * x,且 0! = 1 )例如, f(3) = 0 ,因为 3! = 6 的末尾没有 0 ;而 f(11) = 2 ,因为 11!= 39916800 末端有 2 个 0 。给定 K,找出多少个非负整数 x ,能满足 f(x) = K 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/preimage-size-of-factorial-zeroes-

2021-12-14 16:27:59 104

原创 773. 滑动谜题

题目在一个 2 x 3 的板上(board)有 5 块砖瓦,用数字 1~5 来表示, 以及一块空缺用 0 来表示.一次移动定义为选择 0 与一个相邻的数字(上下左右)进行交换.最终当板 board 的结果是 [[1,2,3],[4,5,0]] 谜板被解开。给出一个谜板的初始状态,返回最少可以通过多少次移动解开谜板,如果不能解开谜板,则返回 -1 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/sliding-puzzle著作权归领扣网络所

2021-12-14 13:43:09 273

原创 752. 打开转盘锁

题目你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’ 。每个拨轮可以自由旋转:例如把 ‘9’ 变为 ‘0’,‘0’ 变为 ‘9’ 。每次旋转都只能旋转一个拨轮的一位数字。锁的初始数字为 ‘0000’ ,一个代表四个拨轮的数字的字符串。列表 deadends 包含了一组死亡数字,一旦拨轮的数字和列表里的任何一个元素相同,这个锁将会被永久锁定,无法再被旋转。字符串 target 代表可以解锁的数字

2021-12-13 21:37:53 112

原创 77. 组合

题目给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。代码class Solution { List<List<Integer>> res; public List<List<Integer>> combine(int n, int k) { res =new ArrayList<>(); ArrayList<Integer&

2021-12-13 19:02:17 77

原创 134. 加油站

题目在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。说明:如果题目有解,该答案即为唯一答案。输入数组均为非空数组,且长度相同。输入数组中的元素均为非负数。来源:力扣(LeetCode)链接:https://leetcode-cn.com/proble

2021-12-12 19:42:21 76

原创 45. 跳跃游戏 II

题目给你一个非负整数数组 nums ,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。假设你总是可以到达数组的最后一个位置。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/jump-game-ii著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。代码class Solution { public int jump(int[] n

2021-12-12 19:13:14 69

原创 1024. 视频拼接

题目你将会获得一系列视频片段,这些片段来自于一项持续时长为 time 秒的体育赛事。这些片段可能有所重叠,也可能长度不一。使用数组 clips 描述所有的视频片段,其中 clips[i] = [starti, endi] 表示:某个视频片段开始于 starti 并于 endi 结束。甚至可以对这些片段自由地再剪辑:例如,片段 [0, 7] 可以剪切成 [0, 1] + [1, 3] + [3, 7] 三部分。我们需要将这些片段进行再剪辑,并将剪辑后的内容拼接成覆盖整个运动过程的片段([0, tim

2021-12-12 18:21:54 4172

原创 188. 买卖股票的佳时机 IV

题目给定一个整数数组 prices ,它的第 i 个元素 prices[i] 是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。代码class Solution { public int maxProfit(int k, int[] prices) { if (k>prices.length/2) return maxP

2021-12-11 19:58:14 170

空空如也

空空如也

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

TA关注的人

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