07 2022 档案

摘要:力扣 题目100-  相同的树题目 题解 使用力扣 题目94- 二叉树的中序遍历 的遍历方法对两个二叉树同时遍历 在遍历的同时对结构与值判断 代码 使用两个容器 1 #include<iostream> 2 #include<stack> 3 using namespace std; 4 5 struct TreeNode { 阅读全文
posted @ 2022-07-30 18:11 无聊的阿库娅 阅读(44) 评论(0) 推荐(0)
摘要:力扣 题目99- 恢复二叉搜索树题目 题解 在力扣 题目98- 验证二叉搜索树中 我们知道了 中序遍历后的二叉搜索树 应该为递增 那么出错就应该是有部分递减 那么我们在98题的基础上 反向检测 保存减少数列的开头与结尾进行交换 代码 1 #include<iostream> 2 #include<vector> 3 #includ 阅读全文
posted @ 2022-07-27 19:12 无聊的阿库娅 阅读(17) 评论(0) 推荐(0)
摘要:力扣 题目98- 验证二叉搜索树题目 题解 中序遍历是左中右 那么根据 二叉搜索树的性质我们可以发现 左<中<右 那么对应就是中序遍历就是递增的 那么我们可以在力扣 题目94- 二叉树的中序遍历 直接加入判断 while (root != nullptr || !ergodic.empty()) { if (root != nul 阅读全文
posted @ 2022-07-24 17:16 无聊的阿库娅 阅读(44) 评论(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 无聊的阿库娅 阅读(45) 评论(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 无聊的阿库娅 阅读(26) 评论(0) 推荐(0)
摘要:力扣 题目95- 不同的二叉搜索树 II题目 题解 我们可以将一个大的二叉搜索树分成越来越小的二叉搜索树 那么问题是如何取左节点 与 右节点的可能性 也就是我们需要的做 便是如何找到左节点范围 右节点范围 二叉搜索树 //左节点比根节点小//右节点比根节点大 //右节点下的子节点也比左节点的子节点大 //已经取过的不能再用 根据上面几条便 阅读全文
posted @ 2022-07-19 18:11 无聊的阿库娅 阅读(28) 评论(0) 推荐(0)
摘要:力扣 题目94- 二叉树的中序遍历题目 题解 二叉树有点忘记了 专门去复习了 一遍 其实就是 左中右 一看用递归或者栈吧 栈比较简单一些 我们直接不断向左移动 碰到空就向栈顶的右走即可 代码 1 #include<iostream> 2 #include<vector> 3 #include<stack> 4 using names 阅读全文
posted @ 2022-07-18 17:57 无聊的阿库娅 阅读(41) 评论(0) 推荐(0)
摘要:力扣 题目93- 复原 IP 地址题目 题解 这题一看用回溯算法比较省事 我们先简化一下该题 简化后的题是 有三个点需要插入到s中 间隔为1或2或3 怎么插入(点不能在开头与结束)? 我们看简化的这个题 实际上很好写 那么复原 IP 地址就是在上面这个题上加了不少条件 我们一个一个对比来看 1.首先0不能做开头 只能自己被分 即间隔 阅读全文
posted @ 2022-07-17 18:52 无聊的阿库娅 阅读(72) 评论(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 无聊的阿库娅 阅读(36) 评论(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 无聊的阿库娅 阅读(44) 评论(0) 推荐(0)
摘要:力扣 题目90- 子集 II题目 题解 直接在力扣 题目78- 子集修改 先排序 因为我们不知道后面有没有与前面重复的 所以排序后考虑一种情况 就是重复都在一起 那么我们只要在78题上判断一下重复即可 int loop(vector<int>& nums, vector<vector<int>>& result, vector 阅读全文
posted @ 2022-07-14 14:39 无聊的阿库娅 阅读(19) 评论(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 无聊的阿库娅 阅读(27) 评论(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 无聊的阿库娅 阅读(50) 评论(0) 推荐(0)
摘要:题目 题解 这题真的是 大脑过载了 看完其他人的题解 我只能说666 所以这里不写了 我怕我写了也写不明白 放个链接给大家伙 https://leetcode.cn/problems/scramble-string/solution/miao-dong-de-qu-jian-xing-dpsi-lu 阅读全文
posted @ 2022-07-10 16:43 无聊的阿库娅 阅读(21) 评论(0) 推荐(0)
摘要:力扣 题目86- 分隔链表题目 题解 我们把一个链表 分成小于 x 的节点的链表与大于或等于 x 的节点的链表 最后合并不就可以了 1 //小于 x 的节点的链表 2 ListNode* lesslistfirst = new(ListNode); 3 lesslistfirst->val = -101; 4 ListNod 阅读全文
posted @ 2022-07-09 15:50 无聊的阿库娅 阅读(33) 评论(0) 推荐(0)
摘要:力扣 题目85-  最大矩形题目 题解 一看这不是和力扣 题目84- 柱状图中最大的矩形差不多吗 那么我们以行 为一个柱状图 然后传入84题的过程不就可以了 例如第一行是 10100 而第二行是20211 即+1操作 特殊情况是0 如果有0的话那么当前柱子就会被截断 例如第四行 应该是4 0 0 3 0 1 if (matri 阅读全文
posted @ 2022-07-08 17:11 无聊的阿库娅 阅读(41) 评论(0) 推荐(0)
摘要:力扣 题目84-  柱状图中最大的矩形题目 题解 这题其实如果不考虑时间 穷举应该挺容易想到的 即 找到向左找到第一个高度小于当前柱体 i 的柱体,向右找到第一个高度小于当前柱体 i 的柱体。 每个柱子我们都如上计算一遍以当前柱子作为高的矩形面积,最终比较出最大的矩形面积即可。(这里用循环比较) 但是这样力扣肯定不会让我们过的 那么在如 阅读全文
posted @ 2022-07-07 17:23 无聊的阿库娅 阅读(67) 评论(0) 推荐(0)
摘要:力扣 题目82+83-   删除排序链表中的重复元素I/II题目 83 82 题解 今天打开力扣一看怎么82在83前面呢 果断先做83 83 我们需要三个节点 分别是 头结点(head):返回用 遍历节点(temporary):遍历每一个节点 保存节点(replace):针对题目中的情况进行修改节点 replacenum:记录每一个节点的数 当tempora 阅读全文
posted @ 2022-07-06 15:15 无聊的阿库娅 阅读(93) 评论(0) 推荐(0)
摘要:力扣 题目81-  搜索旋转排序数组 II题目 题解 本体既然是 力扣 题目33-- 搜索旋转排序数组 的变种 那么我们的代码也由33题的代码改改吧 这题与33题不一样的地方在于有重复的出现 那么在33题中我们根据nums[left] > nums[right] 去分割的条件需要改善 到nums[left] >= nums[right] 结 阅读全文
posted @ 2022-07-04 13:56 无聊的阿库娅 阅读(17) 评论(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 无聊的阿库娅 阅读(23) 评论(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 无聊的阿库娅 阅读(15) 评论(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 无聊的阿库娅 阅读(24) 评论(0) 推荐(0)