摘要: 尚硅谷-谷粒商城持续踩坑中... 项目地址 目前看到101p基础篇完结 暂时不看了 看面试题去了 day5微服务项目好麻烦啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊 1.在gulimall-common上导入的依赖,有部分模块不能导入(直接刷新也不行) 解决方法:可以在不能导入依赖的模块的pom文件中删除一些依赖 刷新 然后再 阅读全文
posted @ 2022-09-16 19:07 无聊的阿库娅 阅读(378) 评论(1) 推荐(0) 编辑
摘要: Docker部署自己的Springboot项目 前几天跟着 黑马程序员 做完了瑞吉外卖项目 gitee个人链接 然后想放到容器里面去运行 所以有了这个教程 首先准备好数据库 注意记得映射端口3306 然后将项目打成jar包 用maven打就行 然后把jar包和Dockerfile文件(该文件请自己创建)放在一个目录 下面是Dockerfile文件 阅读全文
posted @ 2022-09-16 18:56 无聊的阿库娅 阅读(92) 评论(2) 推荐(1) 编辑
摘要: 力扣 题目5-  最长回文子串(100道完结) 题目 题解 1.暴力解法 从前往后遍历途中对 以i为中心对称遍历 和 i也有对称数的对称遍历 2.动态规划 一个回文子串 意味着将两端去掉依然是回文子串 所以我们使用两层vector 记录从开始位置到结束位置是否是回文字符 当s[j]==s[i]时 就去看res[i + 1][j - 1] 是否也为 阅读全文
posted @ 2022-08-07 17:11 无聊的阿库娅 阅读(28) 评论(0) 推荐(1) 编辑
摘要: 力扣 题目4-   寻找两个正序数组的中位数 题目 题解 遍历(nums1size + nums2size) / 2 + 1次 nums1与nums2比较谁小取谁 放入vector 最后根据i与vector 容器的关系返回 我们实际上最多只需要最后遍历的两次 所以可以加入特殊判断 节省空间 代码 1 #include<iostream> 2 # 阅读全文
posted @ 2022-08-05 18:09 无聊的阿库娅 阅读(12) 评论(0) 推荐(1) 编辑
摘要: 力扣 题目3-   无重复字符的最长子串 题目 题解 双重循环+左右边界 第一层循环遍历全部 作为右边界 第二层循环从left 左边界开始向右边界遍历 当 第一层循环与第二层循环字符串相等时 更新左边界为第二层循环+1 即可摆脱重复字符 每次循环完第二层 判断结果 代码 1 #include<iostream> 2 #include<str 阅读全文
posted @ 2022-08-03 17:39 无聊的阿库娅 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 力扣 题目2-   两数相加 题目 题解 同时向后遍历 用一个参数做进位 长度不够进行补0 代码 1 #include<iostream> 2 #include<vector> 3 using namespace std; 4 struct ListNode { 5 int val; 6 ListNode* next; 7 Li 阅读全文
posted @ 2022-08-02 16:57 无聊的阿库娅 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 力扣 题目1-   两数之和 题目 题解 n2:双重循环遍历 代码 1 #include<iostream> 2 #include<vector> 3 #include<algorithm> 4 using namespace std; 5 class Solution { 6 public: 7 vector<int> two 阅读全文
posted @ 2022-08-02 15:38 无聊的阿库娅 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 力扣 题目100-  相同的树 题目 题解 使用力扣 题目94- 二叉树的中序遍历 的遍历方法对两个二叉树同时遍历 在遍历的同时对结构与值判断 代码 使用两个容器 1 #include<iostream> 2 #include<stack> 3 using namespace std; 4 5 struct TreeNode { 阅读全文
posted @ 2022-07-30 18:11 无聊的阿库娅 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 力扣 题目99- 恢复二叉搜索树 题目 题解 在力扣 题目98- 验证二叉搜索树中 我们知道了 中序遍历后的二叉搜索树 应该为递增 那么出错就应该是有部分递减 那么我们在98题的基础上 反向检测 保存减少数列的开头与结尾进行交换 代码 1 #include<iostream> 2 #include<vector> 3 #includ 阅读全文
posted @ 2022-07-27 19:12 无聊的阿库娅 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 力扣 题目98- 验证二叉搜索树 题目 题解 中序遍历是左中右 那么根据 二叉搜索树的性质我们可以发现 左<中<右 那么对应就是中序遍历就是递增的 那么我们可以在力扣 题目94- 二叉树的中序遍历 直接加入判断 while (root != nullptr || !ergodic.empty()) { if (root != nul 阅读全文
posted @ 2022-07-24 17:16 无聊的阿库娅 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 力扣 题目97- 交错字符串 题目 题解 首先就想的是动态规划法 用dp[i][j] ->即当s1取长度i s2取长度j时是否满足 需要注意的是当其中一个字符串为0 则另一个字符串必须全部与s3匹配才为1 int n1 = s1.size(), n2 = s2.size(); vector<vector<bool>> dp(n1 阅读全文
posted @ 2022-07-23 17:59 无聊的阿库娅 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 力扣 题目96- 不同的二叉搜索树 题目 题解 参考95题的思路 进行排列组合 即以o(n)=o(i - 1)*o(n-i)的加和--i循环属于[1,n] ; 也就是需要从1开始然后向上算到n for (int j = 1; j <= n;j++ ) { int num = 0; for (int i = 1; i <= j; i++ 阅读全文
posted @ 2022-07-20 15:41 无聊的阿库娅 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 力扣 题目95- 不同的二叉搜索树 II 题目 题解 我们可以将一个大的二叉搜索树分成越来越小的二叉搜索树 那么问题是如何取左节点 与 右节点的可能性 也就是我们需要的做 便是如何找到左节点范围 右节点范围 二叉搜索树 //左节点比根节点小//右节点比根节点大 //右节点下的子节点也比左节点的子节点大 //已经取过的不能再用 根据上面几条便 阅读全文
posted @ 2022-07-19 18:11 无聊的阿库娅 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 力扣 题目94- 二叉树的中序遍历 题目 题解 二叉树有点忘记了 专门去复习了 一遍 其实就是 左中右 一看用递归或者栈吧 栈比较简单一些 我们直接不断向左移动 碰到空就向栈顶的右走即可 代码 1 #include<iostream> 2 #include<vector> 3 #include<stack> 4 using names 阅读全文
posted @ 2022-07-18 17:57 无聊的阿库娅 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 力扣 题目93- 复原 IP 地址 题目 题解 这题一看用回溯算法比较省事 我们先简化一下该题 简化后的题是 有三个点需要插入到s中 间隔为1或2或3 怎么插入(点不能在开头与结束)? 我们看简化的这个题 实际上很好写 那么复原 IP 地址就是在上面这个题上加了不少条件 我们一个一个对比来看 1.首先0不能做开头 只能自己被分 即间隔 阅读全文
posted @ 2022-07-17 18:52 无聊的阿库娅 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 力扣 题目92- 反转链表 II 题目 题解 参考 力扣 题目25-- K 个一组翻转链表 的做法使用栈即可 代码 1 #include<iostream> 2 #include<vector> 3 #include<stack> 4 using namespace std; 5 struct ListNode { 6 int va 阅读全文
posted @ 2022-07-16 17:30 无聊的阿库娅 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 力扣 题目91- 解码方法 题目 题解 一看这个题 需要用到之前运算过的结果 那么我一开始是想用回溯算法 但是过不去那就考虑动态规划了 其实我们直接想也可以得到这样dp[i]=dp[i-2]+dp[i-1] 但是有些条件需要考虑即 s[i]=0->dp[i]=dp[i-2]; 因为无法到达 所以只能用dp[i-2]来算 因为d 阅读全文
posted @ 2022-07-15 17:33 无聊的阿库娅 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 力扣 题目90- 子集 II 题目 题解 直接在力扣 题目78- 子集修改 先排序 因为我们不知道后面有没有与前面重复的 所以排序后考虑一种情况 就是重复都在一起 那么我们只要在78题上判断一下重复即可 int loop(vector<int>& nums, vector<vector<int>>& result, vector 阅读全文
posted @ 2022-07-14 14:39 无聊的阿库娅 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 力扣 题目89- 格雷编码 题目 题解 离经叛道法 由于我对C++的二进制不太会用 所以我就想能不能不用二进制做 我们直接测试一下1-5结果 1->0,1 2->0,1,3,2 3->0,1,3,2,6,7,5,44->0,1,3,2,6,7,5,4,12,13,15,14,10,11,9,85->0,1,3,2,6,7,5, 阅读全文
posted @ 2022-07-12 16:44 无聊的阿库娅 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 力扣 题目88- 合并两个有序数组 题目 题解 这种题 一看 我们直接先从后面向前想 很容易能想到我们谁大取谁 这里的向后 分别是指m n 以及遍历的nums1->p= m+ n - 1; nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3 一开始 nums1 [m]=3 nums 阅读全文
posted @ 2022-07-11 15:54 无聊的阿库娅 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 题目 题解 这题真的是 大脑过载了 看完其他人的题解 我只能说666 所以这里不写了 我怕我写了也写不明白 放个链接给大家伙 https://leetcode.cn/problems/scramble-string/solution/miao-dong-de-qu-jian-xing-dpsi-lu 阅读全文
posted @ 2022-07-10 16:43 无聊的阿库娅 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 力扣 题目86- 分隔链表 题目 题解 我们把一个链表 分成小于 x 的节点的链表与大于或等于 x 的节点的链表 最后合并不就可以了 1 //小于 x 的节点的链表 2 ListNode* lesslistfirst = new(ListNode); 3 lesslistfirst->val = -101; 4 ListNod 阅读全文
posted @ 2022-07-09 15:50 无聊的阿库娅 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 力扣 题目85-  最大矩形 题目 题解 一看这不是和力扣 题目84- 柱状图中最大的矩形差不多吗 那么我们以行 为一个柱状图 然后传入84题的过程不就可以了 例如第一行是 10100 而第二行是20211 即+1操作 特殊情况是0 如果有0的话那么当前柱子就会被截断 例如第四行 应该是4 0 0 3 0 1 if (matri 阅读全文
posted @ 2022-07-08 17:11 无聊的阿库娅 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 力扣 题目84-  柱状图中最大的矩形 题目 题解 这题其实如果不考虑时间 穷举应该挺容易想到的 即 找到向左找到第一个高度小于当前柱体 i 的柱体,向右找到第一个高度小于当前柱体 i 的柱体。 每个柱子我们都如上计算一遍以当前柱子作为高的矩形面积,最终比较出最大的矩形面积即可。(这里用循环比较) 但是这样力扣肯定不会让我们过的 那么在如 阅读全文
posted @ 2022-07-07 17:23 无聊的阿库娅 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 力扣 题目82+83-   删除排序链表中的重复元素I/II 题目 83 82 题解 今天打开力扣一看怎么82在83前面呢 果断先做83 83 我们需要三个节点 分别是 头结点(head):返回用 遍历节点(temporary):遍历每一个节点 保存节点(replace):针对题目中的情况进行修改节点 replacenum:记录每一个节点的数 当tempora 阅读全文
posted @ 2022-07-06 15:15 无聊的阿库娅 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 力扣 题目81-  搜索旋转排序数组 II 题目 题解 本体既然是 力扣 题目33-- 搜索旋转排序数组 的变种 那么我们的代码也由33题的代码改改吧 这题与33题不一样的地方在于有重复的出现 那么在33题中我们根据nums[left] > nums[right] 去分割的条件需要改善 到nums[left] >= nums[right] 结 阅读全文
posted @ 2022-07-04 13:56 无聊的阿库娅 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 力扣 题目80- 删除有序数组中的重复项 II 题目 题解 记录一下频率 超过2就删除 代码 1 #include<iostream> 2 #include<vector> 3 using namespace std; 4 class Solution { 5 public: 6 int removeDuplicates(vector<int>& 阅读全文
posted @ 2022-07-03 14:14 无聊的阿库娅 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 力扣 题目79- 单词搜索 题目 题解 回溯算法 找到开头然后对上下左右四个方向 回溯 已经遍历过的至* 直到长度与word一致 代码 1 #include<iostream> 2 #include<vector> 3 #include<unordered_map> 4 using namespace std; 5 //1是上 阅读全文
posted @ 2022-07-02 15:23 无聊的阿库娅 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 力扣 题目78- 子集 题目 题解 将77题进行改造 由满足一定长度加入改为当加入字符时 就放入结果集 代码 1 #include<iostream> 2 #include<vector> 3 using namespace std; 4 int loop(vector<int>& nums, vector<vector< 阅读全文
posted @ 2022-07-01 15:03 无聊的阿库娅 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 力扣 题目77- 组合 题目 题解 回溯算法+递归 这题属于很典型的回溯算法题了 都做到77了应该没什么要说的了 懂得都懂 代码 1 #include<iostream> 2 #include<vector> 3 using namespace std; 4 int loop(int &n,int &k, vector<v 阅读全文
posted @ 2022-06-30 15:11 无聊的阿库娅 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 力扣 题目76- 最小覆盖子串 题目 题解 直接看代码吧 代码 1 #include<iostream> 2 #include<string> 3 #include<unordered_map> 4 using namespace std; 5 class Solution { 6 public: 7 string minWind 阅读全文
posted @ 2022-06-29 16:59 无聊的阿库娅 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 力扣 题目75- 颜色分类 题目 题解 1.移动法(推荐) 在该方法中我们只需要记录一下白色开头值即可 如果为0则移动到开头 如果为1则移动到白色开头值 2会被推到最后 例 2,0,2,1,1,0->0,2,2,1,1,0->0,1,2,2,1,0->0,1,1,2,2,0->0,0,1,1,2,2 2.交换法 需要记录 白色 阅读全文
posted @ 2022-06-27 18:45 无聊的阿库娅 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 力扣 题目74- 搜索二维矩阵 题目 题解 先对第一列进行二分搜索 找到对应行 再对 对应行进行二分搜索 代码 1 #include<iostream> 2 #include<vector> 3 using namespace std; 4 class Solution { 5 public: 6 bool searchMatri 阅读全文
posted @ 2022-06-26 16:24 无聊的阿库娅 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 力扣 题目73- 矩阵置零 题目 题解 其实思考一下就知道 我们必须记录一下遍历时0的xy 然后根据记录再去放0 但是如果我们使用其他容器去记录那么我们遍历完还要遍历 记录容器 时间复杂度肯定会搞 有没有一种方法可以在当前容器记录呢? 我们使用第一行与第一列记录 如果 if (matrix[i][j] == 0) { matr 阅读全文
posted @ 2022-06-25 15:38 无聊的阿库娅 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 力扣 题目72-  编辑距离 题目 题解(评论区大佬解法) 首先很明显这题需要使用动态规划法 关键在于 在word1遍历到当前字符时如何利用前面的已经遍历过字符的最少操作数 成为了难题 题目这样 写到 你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个字符 那么我们按照这样划分为4种情况(这里的i 与 j 阅读全文
posted @ 2022-06-24 15:50 无聊的阿库娅 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 力扣 题目71-  简化路径 题解 这里我使用栈来做 分为两部分 1.分割 我们需要将path的路径进行分割 /home//foo/ -> home foo 注意:1.以/分割 多/视为一个/ 2.最后/特殊处理 因为由于/可能不在最后 所以最后的字段分割需要特殊处理 1 stack<string> stk; 2 string 阅读全文
posted @ 2022-06-23 17:35 无聊的阿库娅 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 力扣 题目70-  爬楼梯 题目 题解 当前阶层方法数=(当前阶层-2的方法数)+(当前阶层-1的方法数) 代码 1 #include<iostream> 2 #include<vector> 3 using namespace std; 4 class Solution { 5 public: 6 int climbStai 阅读全文
posted @ 2022-06-22 17:12 无聊的阿库娅 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 力扣 题目69-  x 的平方根 题目 题解 二分搜索法 但是不同的是我们每次要与中间的平方比较 代码 1 #include<iostream> 2 using namespace std; 3 class Solution { 4 public: 5 int mySqrt(int x) { 6 if (x == 1) { 7 re 阅读全文
posted @ 2022-06-08 09:50 无聊的阿库娅 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 题目 题解 没有什么技巧 就是复杂 直接看代码吧 代码(来自评论区大佬) 1 class Solution { 2 public: 3 vector<string> fullJustify(vector<string>& words, int maxWidth) { 4 vector<string> 阅读全文
posted @ 2022-06-06 14:05 无聊的阿库娅 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 力扣 题目67-  二进制求和 题目 题解 仔细想想其实这题和力扣 题目66- 加一很类似 其中的加法运算我们就可以参考 66题的记录进位的方法 但66题是+1而这题是相加 这就表面了两个数的长度可能不同 那么我们可以把短的那个前面加入0 再进行运算 至于如何将先算出来的结果后放入 这就要考虑到递归算法 在我们算出来第一位时 便回 阅读全文
posted @ 2022-06-05 13:04 无聊的阿库娅 阅读(21) 评论(0) 推荐(0) 编辑