- 博客(478)
- 资源 (1)
- 收藏
- 关注
原创 linux下Tomcat配置提示权限不够解决办法
往linux服务器上部署Java后端,但是在服务器上安装好的tomcat,却因为权限不够无法进入这就导致后端war包项目及前端页面无法部署。
2025-04-01 11:31:47
218
原创 AI作画Prompt不会写?Amazon Bedrock Claude3.5来帮忙
Claude3.5 Sonnet的智能算法不仅能提高prompt的准确性,还能激发你的创意。最新上线的Claude3.5 Sonnet按照官方介绍的数据来看,在多方面超越了CPT-4o,是迄今为止最智能的模型。我们仅需在Claude3.5 Sonnet中输入简单的指令,增加一些限定词便可以得到我们作画所需要的prompt。根据其他大模型输出的prompt来生成的图片较为粗糙,场景比较单一。而根据Claude3.5 Sonnet输出的prompt生成的图片场景较为丰富,图片质量也更高。
2024-06-26 11:44:05
781
原创 LeetCode Python - 83. 删除排序链表中的重复元素
如果当前 cur 与 cur.next 对应的元素相同,我们就将 cur 的 next 指针指向 cur 的下下个节点。否则,说明链表中 cur 对应的元素是不重复的,因此可以将 cur 指针移动到下一个节点。给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次。返回 已排序的链表。时间复杂度 O(n),其中 n 是链表的长度。输入:head = [1,1,2,3,3]输入:head = [1,1,2]遍历结束后,返回链表的头节点即可。输出:[1,2,3]
2024-03-31 08:30:00
601
原创 LeetCode Python - 84. 柱状图中最大的矩形
我们可以枚举每根柱子的高度 h 作为矩形的高度,利用单调栈,向左右两边找第一个高度小于 h 的下标 left。给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1。时间复杂度 O(n),空间复杂度 O(n)。其中 n 表示 heights 的长度。输入:heights = [2,1,5,6,2,3]求在该柱状图中,能够勾勒出来的矩形的最大面积。解释:最大的矩形为图中红色区域,面积为 10。输入: heights = [2,4]−1),求最大值即可。
2024-03-31 08:15:00
487
原创 LeetCode Python - 82. 删除排序链表中的重复元素 II
当 cur 指向的节点值与 cur.next 指向的节点值相同时,我们就让 cur 不断向后移动,直到 cur 指向的节点值与 cur.next 指向的节点值不相同时,停止移动。继续上述操作,直到 cur 为空,遍历结束。我们先创建一个虚拟头节点 dummy,令 dummy.next=head,然后创建指针 pre 指向 dummy,指针 cur 指向 head,开始遍历链表。输入:head = [1,2,3,3,4,4,5]输入:head = [1,1,1,2,3]输出:[1,2,5]
2024-03-30 12:40:29
657
原创 LeetCode Python - 80. 删除有序数组中的重复项 II
然后我们从左到右遍历数组,对于遍历到的每个元素 x,如果 k<2 或者 x≠nums[k−2],我们就将 x 放到 nums[k] 的位置,然后 k 自增 1。解释:函数应返回新长度 length = 7, 并且原数组的前七个元素被修改为 0, 0, 1, 1, 2, 3, 3。解释:函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3。输入:nums = [0,0,1,1,1,1,2,3,3]输出:7, nums = [0,0,1,1,2,3,3]
2024-03-30 12:22:20
1448
原创 LeetCode Python - 79. 单词搜索
输入:board = [[“A”,“B”,“C”,“E”],[“S”,“F”,“C”,“S”],[“A”,“D”,“E”,“E”]], word = “ABCCED”输入:board = [[“A”,“B”,“C”,“E”],[“S”,“F”,“C”,“S”],[“A”,“D”,“E”,“E”]], word = “ABCB”输入:board = [[“A”,“B”,“C”,“E”],[“S”,“F”,“C”,“S”],[“A”,“D”,“E”,“E”]], word = “SEE”
2024-03-30 12:16:56
1083
原创 LeetCode Python - 77. 组合
我们也可以枚举下一个要选择的数字 j,其中 i≤j≤n,如果下一个要选择的数字是 j,那么我们将数字 j 加入搜索路径 t,然后继续搜索,即执行 dfs(j+1),接着将数字 j 从搜索路径 t 中移除。否则,我们可以选择将数字 i 加入搜索路径 t,然后继续搜索,即执行 dfs(i+1),然后将数字 i 从搜索路径 t 中移除;我们设计一个函数 dfs(i),表示从数字 i 开始搜索,当前搜索路径为 t,答案为 ans。在主函数中,我们从数字 1 开始搜索,即执行 dfs(1)。
2024-03-27 08:30:00
413
原创 LeetCode Python - 78. 子集
个二进制数来表示 n 个元素的所有子集,对于当前二进制数 mask,如果第 i 位为 1,表示选择了第 i 个元素,否则表示不选择第 i 个元素。我们设计一个函数 dfs(i),表示从数组的第 i 个元素开始搜索所有子集。在主函数中,我们调用 dfs(0),即从数组的第一个元素开始搜索所有子集。输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]),空间复杂度 O(n)。个子集,每个子集需要 O(n) 的时间来构造。个子集,每个子集需要 O(n) 的时间来构造。
2024-03-27 08:30:00
560
原创 LeetCode Python - 75. 颜色分类
我们定义三个指针 i, j 和 k,其中指针 i 用于指向数组中元素值为 0 的最右边界,指针 j 用于指向数组中元素值为 2 的最左边界,初始时 i=−1, j=n。遍历结束后,数组中的元素就被分成了 [0,i], [i+1,j−1] 和 [j,n−1] 三个部分。若 nums[k]=0,则将其与 nums[i+1] 交换,然后 i 和 k 都加 1;输入:nums = [2,0,2,1,1,0]若 nums[k]=1,则 k 加 1。输入:nums = [2,0,1]输出:[0,0,1,1,2,2]
2024-03-26 08:30:00
370
原创 LeetCode Python - 76. 最小覆盖子串
我们将其加入窗口中,即 window[s[i]]=window[s[i]]+1,如果此时 need[s[i]]≥window[s[i]],则说明 s[i] 是一个「必要的字符」,我们将 cnt 加一。然后,我们尝试移动左边界 j,如果此时 need[s[j]]≥window[s[j]],则说明 s[j] 是一个「必要的字符」,移动左边界时会把 s[j] 这个字符从窗口中移除,因此我们需要将 cnt 减一,然后更新 window[s[j]]=window[s[j]]−1,并将 j 右移一位。
2024-03-26 08:30:00
1268
原创 LeetCode Python - 74. 搜索二维矩阵
输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 13。输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3。给你一个整数 target ,如果 target 在矩阵中,返回 true;时间复杂度 O(log(m×n))。其中 m 和 n 分别是矩阵的行数和列数。空间复杂度 O(1)。时间复杂度 O(m+n)。其中 m 和 n 分别是矩阵的行数和列数。
2024-03-25 10:12:13
823
原创 LeetCode Python - 73. 矩阵置零
方法一中使用了额外的数组标记待清零的行和列,实际上我们也可以直接用矩阵的第一行和第一列来标记,不需要开辟额外的数组空间。给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0。输入:matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]]输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]]输出:[[1,0,1],[0,0,0],[1,0,1]]
2024-03-25 09:30:10
788
原创 LeetCode Python - 72. 编辑距离
我们定义 f[i][j] 表示将 word1 的前 i 个字符转换成 word2 的前 j 个字符所使用的最少操作数。初始时 f[i][0]=i, f[0][j]=j。其中 i∈[1,m],j∈[0,n]。给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数。enention -> exention (将 ‘n’ 替换为 ‘x’)exention -> exection (将 ‘n’ 替换为 ‘c’)rose -> ros (删除 ‘e’)
2024-03-24 16:03:11
1155
原创 LeetCode Python - 71. 简化路径
任意多个连续的斜杠(即,‘//’)都被视为单个斜杠 ‘/’。给你一个字符串 path ,表示指向某一文件或目录的 Unix 风格 绝对路径 (以 ‘/’ 开头),请你将其转化为更加简洁的规范路径。最后,我们将栈中的所有元素按照从栈底到栈顶的顺序拼接成字符串,即为简化后的规范路径。解释:从根目录向上一级是不可行的,因为根目录是你可以到达的最高级。输入:path = “/a/./b/…输入:path = “/home//foo/”输入:path = “/home/”输出:“/home/foo”
2024-03-24 14:35:48
444
原创 LeetCode Python - 69. x 的平方根
在每一步查找中,我们找出中间值 mid=(l+r+1)/2,如果 mid>x/mid,说明平方根在 [l,mid−1] 范围内,我们令 r=mid−1;否则说明平方根在 [mid,r] 范围内,我们令 l=mid。注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5。我们定义二分查找的左边界 l=0,右边界 r=x,然后在 [l,r] 范围内查找平方根。, 由于返回类型是整数,小数部分将被舍去。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去。
2024-03-23 08:30:00
406
原创 LeetCode Python - 70. 爬楼梯
我们定义 f[i] 表示爬到第 i 阶楼梯的方法数,那么 f[i] 可以由 f[i−1] 和 f[i−2] 转移而来,即:f[i]=f[i−1]+f[i−2]由于 f[i] 只与 f[i−1] 和 f[i−2] 有关,因此我们可以只用两个变量 a 和 b 来维护当前的方法数,空间复杂度降低为 O(1)。初始条件为 f[0]=1,f[1]=1,即爬到第 0 阶楼梯的方法数为 1,爬到第 1 阶楼梯的方法数也为 1。我们定义初始矩阵 res=[ 1 1 ],那么 F。答案即为 f[n]。
2024-03-23 08:30:00
1016
原创 LeetCode Python - 67. 二进制求和
我们用一个变量 carry 记录当前的进位,用两个指针 i 和 j 分别指向 a 和 b 的末尾,从末尾到开头逐位相加即可。时间复杂度 O(max(m,n)),其中 m 和 n 分别为字符串 a 和 b 的长度。空间复杂度 O(1)给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。输入:a = “1010”, b = “1011”输入:a = “11”, b = “1”输出:“10101”
2024-03-22 08:30:00
500
原创 LeetCode Python - 68. 文本左右对齐
输入:words = [“Science”,“is”,“what”,“we”,“understand”,“well”,“enough”,“to”,“explain”,“to”,“a”,“computer.”,“Art”,“is”,“everything”,“else”,“we”,“do”],maxWidth = 20。输入: words = [“This”, “is”, “an”, “example”, “of”, “text”, “justification.”], maxWidth = 16。
2024-03-22 08:30:00
887
原创 LeetCode Python - 65. 有效数字
部分有效数字列举如下:[“2”, “0089”, “-0.1”, “+3.14”, “4.”, “-.9”, “2e10”, “-90E3”, “3e+7”, “+6e-1”, “53.5e93”, “-123.456e789”]部分无效数字列举如下:[“abc”, “1a”, “1e”, “e3”, “99e2.5”, “–6”, “-+3”, “95a54e53”]如果当前指针 i 指向的字符是小数点,并且小数点后面没有数字,或者小数点后是一个 e 或 E,返回 false。输入:s = “e”
2024-03-21 08:30:00
784
原创 LeetCode Python - 66. 加一
我们从数组的最后一个元素开始遍历,将当前元素加一,然后对 10 取模,如果取模后的结果不为 0,说明当前元素没有进位,直接返回数组即可。否则,当前元素为 0,需要进位,继续遍历前一个元素,重复上述操作。如果遍历完数组后,仍然没有返回,说明数组中所有元素都为 0,需要在数组的头部插入一个 1。给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。输入:digits = [4,3,2,1]输入:digits = [1,2,3]输出:[4,3,2,2]输出:[1,2,4]
2024-03-21 08:30:00
584
原创 LeetCode Python - 63. 不同路径 II
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。输入:obstacleGrid = [[0,0,0],[0,1,0],[0,0,0]]现在考虑网格中有障碍物。我们定义 dp[i][j] 表示到达网格 (i,j) 的路径数。输入:obstacleGrid = [[0,1],[0,0]]网格中的障碍物和空位置分别用 1 和 0 来表示。最后返回 dp[m−1][n−1] 即可。向右 -> 向右 -> 向下 -> 向下。向下 -> 向下 -> 向右 -> 向右。
2024-03-20 08:30:00
620
原创 LeetCode Python - 64. 最小路径和
我们定义 f[i][j] 表示从左上角走到 (i,j) 位置的最小路径和。初始时 f[0][0]=grid[0][0],答案为 f[m−1][n−1]。给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。输入:grid = [[1,3,1],[1,5,1],[4,2,1]]输入:grid = [[1,2,3],[4,5,6]]解释:因为路径 1→3→1→1→1 的总和最小。最后返回 f[m−1][n−1] 即可。
2024-03-20 08:30:00
1074
原创 LeetCode Python - 61. 旋转链表
否则,我们用快慢指针,让快指针先走 k 步,然后快慢指针同时走,直到快指针走到链表尾部,此时慢指针的下一个节点就是新的链表头节点。给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。否则,我们先统计链表节点数 n,然后将 k 对 n 取模,得到 k 的有效值。我们先判断链表节点数是否小于 2,如果是,直接返回 head 即可。输入:head = [1,2,3,4,5], k = 2。输入:head = [0,1,2], k = 4。输出:[4,5,1,2,3]
2024-03-19 08:30:00
470
原创 LeetCode Python - 62. 不同路径
我们注意到 f[i][j] 仅与 f[i−1][j] 和 f[i][j−1] 有关,因此我们优化掉第一维空间,仅保留第二维空间,得到时间复杂度。我们定义 f[i][j] 表示从左上角走到 (i,j) 的路径数量,初始时 f[0][0]=1,答案为 f[m−1][n−1]。时间复杂度 O(m×n),空间复杂度 O(m×n)。O(m×n),空间复杂度 O(n) 的实现。最终的答案即为 f[m−1][n−1]。输入:m = 3, n = 7。输入:m = 3, n = 2。输入:m = 3, n = 3。
2024-03-19 08:30:00
450
原创 LeetCode Python - 59. 螺旋矩阵 II
从 1 开始,依次填入矩阵中的每个位置。每次填入一个位置后,计算下一个位置的行号和列号,如果下一个位置不在矩阵中或者已经被填过,则改变方向,再计算下一个位置的行号和列号。用 i 和 j 分别表示当前位置的行号和列号,用 k 表示当前的方向编号,dirs 表示方向编号与方向的对应关系。给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix。),其中 n 是矩阵的边长。输出:[[1,2,3],[8,9,4],[7,6,5]]
2024-03-18 08:30:00
948
原创 LeetCode Python - 60. 排列序列
因此,我们枚举每一位 i,如果此时 k 大于当前位置确定后的排列数量,那么我们可以直接减去这个数量;对于每一位 i,其中 0≤i<n,剩余位能组成的排列数量为 (n−i−1)!,我们记为 fact。我们知道,集合 [1,2,…种排列,如果我们确定首位,那剩余位能组成的排列数量为 (n−1)!给出集合 [1,2,3,…,n],其所有元素共有 n!给定 n 和 k,返回第 k 个排列。输入:n = 3, k = 3。输入:n = 4, k = 9。输入:n = 3, k = 1。),空间复杂度 O(n)。
2024-03-18 08:30:00
469
原创 LeetCode Python - 57. 插入区间
输入:intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8]输入:intervals = [[1,3],[6,9]], newInterval = [2,5]输入:intervals = [[1,5]], newInterval = [2,7]解释:这是因为新的区间 [4,8] 与 [3,5],[6,7],[8,10] 重叠。输出:[[1,2],[3,10],[12,16]]输出:[[1,5],[6,9]]输出:[[1,5]]
2024-03-17 08:30:00
1000
原创 LeetCode Python - 58. 最后一个单词的长度
我们从字符串 s 末尾开始遍历,找到第一个不为空格的字符,即为最后一个单词的最后一个字符,下标记为 i。然后继续向前遍历,找到第一个为空格的字符,即为最后一个单词的第一个字符的前一个字符,记为 j。那么最后一个单词的长度即为 i−j。给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。时间复杂度 O(n),其中 n 为字符串 s 长度。解释:最后一个单词是长度为6的“joyboy”。解释:最后一个单词是“World”,长度为5。解释:最后一个单词是“moon”,长度为4。逆向遍历 + 双指针。
2024-03-17 08:30:00
474
原创 LeetCode Python - 55.跳跃游戏
我们从左到右遍历数组,对于遍历到的每个位置 i,如果 mx<i,说明当前位置无法到达,直接返回 false。否则,我们可以通过跳跃从位置 i 到达的最远位置为 i+nums[i],我们用 i+nums[i] 更新 mx 的值,即 x=max(mx,i+nums[i])。解释:无论怎样,总会到达下标为 3 的位置。解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。输入:nums = [2,3,1,1,4]输入:nums = [3,2,1,0,4]
2024-03-16 08:30:00
569
原创 LeetCode Python - 56.合并区间
以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi]。输入:intervals = [[1,3],[2,6],[8,10],[15,18]]其中 n 为区间个数。解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].解释:区间 [1,4] 和 [4,5] 可被视为重叠区间。输入:intervals = [[1,4],[4,5]]输出:[[1,6],[8,10],[15,18]]输出:[[1,5]]
2024-03-16 08:30:00
570
原创 LeetCode Python - 53.最大子树和
由于 f[i] 只与 f[i−1] 有关系,因此我们可以只用一个变量 f 来维护对于当前 f[i] 的值是多少,然后进行状态转移即可。我们定义 f[i] 表示以元素 nums[i] 为结尾的连续子数组的最大和,初始时 f[0]=nums[0],那么最终我们要求的答案即为 max。输入:nums = [-2,1,-3,4,-1,2,1,-5,4]解释:连续子数组 [4,-1,2,1] 的和最大,为 6。输入:nums = [5,4,-1,7,8]输入:nums = [1]是数组中的一个连续部分。
2024-03-15 08:30:00
469
原创 LeetCode Python - 54. 螺旋矩阵
每次我们访问到一个元素后,将其标记为已访问,然后按照当前的方向前进一步,如果前进一步后发现越界或者已经访问过,则改变方向继续前进,直到遍历完整个矩阵。时间复杂度 O(m×n),空间复杂度 O(m×n)。输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]输出:[1,2,3,6,9,8,7,4,5]
2024-03-15 08:30:00
524
原创 LeetCode Python - 51. N 皇后
否则,我们枚举当前行的每一列 j,如果位置 (i,j) 没有皇后,即 col[j], dg[i+j] 和 udg[n−i+j] 都为 0,那么我们可以放置皇后,即把 g[i][j] 改为 ‘Q’,并将 col[j], dg[i+j] 和 udg[n−i+j] 都置为 1,然后继续搜索下一行,即调用 dfs(i+1),递归结束后,我们需要将 g[i][j] 改回 ‘.’ 并将 col[j], dg[i+j] 和 udg[n−i+j] 都置为 0。),空间复杂度 O(n)。输出:[[“Q”]]
2024-03-14 08:30:00
791
原创 LeetCode Python - 52. N 皇后 II
具体地,我们用 cols 数组记录每一列是否已经放置了皇后,用 dg 数组记录每一条正对角线是否已经放置了皇后,用 udg 数组记录每一条反对角线是否已经放置了皇后。在第 i 行,我们枚举第 i 行的每一列,如果当前列不与前面已经放置的皇后发生冲突,那么我们就可以放置一个皇后,然后继续搜索下一行,即调用 dfs(i+1)。n 皇后问题 研究的是如何将 n 个皇后放置在 n × n 的棋盘上,并且使皇后彼此之间不能相互攻击。时间复杂度 O(n!给你一个整数 n ,返回 n 皇后问题 不同的解决方案的数量。
2024-03-14 08:30:00
646
原创 LeetCode Python - 49.字母异位词分组
我们也可以将方法一中的排序部分改为计数,也就是说,将每个字符串 s 中的字符以及出现的次数作为 key,将字符串 s 作为 value 存入哈希表当中。其中 n 和 k 分别是字符串数组的长度和字符串的最大长度,而 C 是字符集的大小,本题中 C=26。输入: strs = [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]输出: [[“bat”],[“nat”,“tan”],[“ate”,“eat”,“tea”]]输出: [[“a”]]输出: [[“”]]
2024-03-13 08:30:00
682
原创 LeetCode Python - 50. Pow(x, n)
快速幂算法的核心思想是将幂指数 n 拆分为若干个二进制位上的 1 的和,然后将 x 的 n 次幂转化为 x 的若干个幂的乘积。实现 pow(x, n) ,即计算 x 的整数 n 次幂函数(即,xn )。其中 n 为幂指数。解释:2-2 = 1/22 = 1/4 = 0.25。输入:x = 2.00000, n = 10。输入:x = 2.00000, n = -2。输入:x = 2.10000, n = 3。输出:1024.00000。输出:9.26100。输出:0.25000。
2024-03-13 08:30:00
451
java在线简历生成器
2023-10-18
java在线调查系统项目
2023-10-18
java密码生成器工具
2023-10-18
训练数据集-消费类数据集
2023-08-27
训练数据集-商业类数据集
2023-08-26
大语言模型面试题,校招面试必备,给自己面试增加成功的概率
2023-08-23
java8 stream使用总结
2023-08-16
文本到摩尔斯电码和二进制
2023-10-30
Java 开发的薪资系统项目
2023-10-30
使用 Java 免费源代码的工厂项目生产控制应用程序
2023-10-30
使用 Java 免费源代码的服务提供商应用程序
2023-10-30
Java 中的简单巴士票务系统源代码
2023-10-30
Java 中的简单文本编辑器源代码
2023-10-30
Java 中的简单订购系统源代码
2023-10-30
Java 免费源代码中的简单涂鸦跳转
2023-10-28
Java 中的简单用户联系人管理应用程序
2023-10-28
互联网服务提供商自动化系统
2023-10-26
bFit认知和记忆测试游戏
2023-10-19
建立消费者关系管理系统
2023-10-18
Java 中的字数统计工具
2023-10-18
java爪哇考试座位安排系统
2023-10-18
java供应链管理系统
2023-10-18
java网络医疗管理系统
2023-10-18
java代码-电费计费系统
2023-10-18
java数据可视化软件
2023-10-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人