随笔分类 - 代码随想录算法训练营
摘要:文章来源:https://programmercarl.com/回溯算法理论基础.html#题目分类 理论基础 回溯的本质是穷举 但是可以增加一些剪枝算法来进行优化 回溯法解决的问题都可以抽象为树形结构,集合的大小构成了树的宽度,递归的深度决定了树的深度 第77题. 组合 文章来源:https://
阅读全文
摘要:岛屿的数量 题目链接:https://leetcode.cn/problems/number-of-islands/ 此题目要点:dfs和bfs都可以解决此题,但是使用dfs代码会更加的简洁 首先对grid进行遍历,每一个节点都进行检查,判断是否是1(陆地) 如果是,则进行dfs深搜,并将所有搜到的
阅读全文
摘要:所有可达路径 文章链接:https://programmercarl.com/kamacoder/0098.所有可达路径.html#本题代码 题目链接:https://kamacoder.com/problempage.php?pid=1170 #include <iostream> #includ
阅读全文
摘要:669. 修剪二叉搜索树 文章链接:https://programmercarl.com/0669.修剪二叉搜索树.html 题目链接:https://leetcode.cn/problems/trim-a-binary-search-tree/description/ class Solution
阅读全文
摘要:235. 二叉搜索树的最近公共祖先 文章链接:https://programmercarl.com/0235.二叉搜索树的最近公共祖先.html 题目链接:https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-search-t
阅读全文
摘要:530.二叉搜索树的最小绝对差 文章链接:https://programmercarl.com/0530.二叉搜索树的最小绝对差.html 视频链接:https://www.bilibili.com/video/BV1DD4y11779/?vd_source=6cb513d59bf1f73f86d4
阅读全文
摘要:654.最大二叉树 文章链接:https://programmercarl.com/0654.最大二叉树.html 题目链接:https://leetcode.cn/problems/maximum-binary-tree/description/ class Solution { public:
阅读全文
摘要:513.找树左下角的值 文章链接:https://programmercarl.com/0513.找树左下角的值.html 题目链接:https://leetcode.cn/problems/find-bottom-left-tree-value/description/ 要点:不管是前中后序遍历,
阅读全文
摘要:110.平衡二叉树 文章链接:https://programmercarl.com/0110.平衡二叉树.html#题外话 题目链接:https://leetcode.cn/problems/balanced-binary-tree/description/ class Solution { pub
阅读全文
摘要:226.翻转二叉树 文章链接:https://programmercarl.com/0226.翻转二叉树.html#算法公开课 题目链接:https://leetcode.cn/problems/invert-binary-tree/description/ 迭代法: 这里使用了前序遍历来交换左右孩
阅读全文
摘要:前置知识 二叉树的定义: struct BNode{ int val; BNode* lchild; BNode* rchild; BNode():lchild(NULL),rchild(NULL){} BNode(int val){ val=val; lchild=rchild=NULL; } }
阅读全文
摘要:150. 逆波兰表达式求值 文章链接:https://programmercarl.com/0150.逆波兰表达式求值.html#算法公开课 题目链接:https://leetcode.cn/problems/evaluate-reverse-polish-notation/description/
阅读全文
摘要:前置知识 文章链接:https://programmercarl.com/0028.实现strStr.html#思路 KMP的经典思想就是:当出现字符串不匹配时,可以记录一部分之前已经匹配的文本内容,利用这些信息避免从头再去做匹配。 前缀表:next数组就是一个前缀表(prefix table)。前
阅读全文
摘要:前置知识 栈和队列都是以deque为缺省底部结构,实际上可以自己指定vector,deque,list都可以 栈和队列都被归类为container adapter( 容器适配器) 使用栈实现队列的操作: push(x) -- 将一个元素放入队列的尾部。 pop() -- 从队列首部移除元素。 pee
阅读全文
摘要:解决无法动态分配数组arr的问题: 在 C++ 中,不能直接使用动态大小的原生数组(例如 int arr[n]),因为数组的大小必须在编译时确定。如果你传入的 n 是运行时决定的,编译器无法确定数组的大小。因此,下面的代码会在标准 C++ 中产生错误: int n; // 假设 n 是函数的参数 i
阅读全文
摘要:344.反转字符串 反转字符串比较简单,除了用reverse,可以用for循环,两头向中间夹,进行swap class Solution { public: void reverseString(vector<char>& s) { int half=s.size()/2; int length=s
阅读全文
摘要:第454题.四数相加II 文章链接:https://programmercarl.com/0454.四数相加II.html 视频讲解:https://www.bilibili.com/video/BV1Md4y1Q7Yh/ 题目链接:https://leetcode.cn/problems/4sum
阅读全文
摘要:151.翻转字符串里的单词 文章链接:https://programmercarl.com/0151.翻转字符串里的单词.html#思路 视频链接:https://www.bilibili.com/video/BV1uT41177fX/?vd_source=6cb513d59bf1f73f86d42
阅读全文
摘要:转载:https://blog.csdn.net/weixin_44309097/article/details/124086049#:~:text=在c++中,有三种主 值传递 传递的仅仅是值: void swap(int x,int y){ int tmp=x; x=y; y=tmp; cout
阅读全文
摘要:242.有效的字母异位词 文章链接:https://programmercarl.com/0242.有效的字母异位词.html#思路 视频链接:https://www.bilibili.com/video/BV1YG411p7BA/?vd_source=6cb513d59bf1f73f86d4225
阅读全文