![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
AlgorithmPractice
文章平均质量分 65
AlgorithmPractice
MatsumotoChrikk
这个作者很懒,什么都没留下…
展开
-
algorithm dayx02
暴力?所有元素平方再sort这样的话会变成onlogn有一个for就是n 有个sort就是logn 暴力记得for中的边界条件双指针怎么想呢?首先它是非递减的所以可以做双指针 想一下他的平方很有可能负数也大 所以刚好满足双指针return的是一个新数组 所以先弄个vectornums时间复杂度on一定要注意:vectorx(nums.size());这句话后面一定要带括号写nums.size();原创 2024-03-26 12:01:17 · 298 阅读 · 1 评论 -
AlgorithmDay1
存放在 连续空间 相同类型下标从0开始vector是容器而不是数组。原创 2024-04-05 20:09:08 · 219 阅读 · 1 评论 -
algorithm dayx01
要在二分查找的过程中,保持不变量,就是在while寻找中每一次边界的处理都要坚持根据区间的定义来操作,这就是。原创 2024-03-24 11:42:43 · 310 阅读 · 1 评论 -
AlgorithmDay2
二分-------------------ologn 注意闭区间插入元素------------暴力+快慢双指针 双指针就是on有序数组平方: 左右双指针on长度最小: 滑动窗口 on螺旋矩阵 直接模拟法 上下左右卡住。原创 2024-04-05 20:09:59 · 248 阅读 · 1 评论 -
AlgorithmDay6
day5系周日休息。原创 2024-04-08 21:19:21 · 560 阅读 · 1 评论 -
AlgorithmDay9
那么vector< char > 和 string 又有什么区别呢?其实在基本操作上没有区别,但是 string提供更多的字符串处理的相关接口,例如string 重载了+,而vector却没有。所以想处理字符串,我们还是会定义一个string类型。通过两个指针在一个for循环下完成两个for循环的工作。原创 2024-04-11 19:14:45 · 332 阅读 · 0 评论 -
AlgorithmDay12
C++中stack,queue 是容器么?不是 是容器适配器 使得容器在某些语义下更好用我们使用的stack,queue是属于那个版本的STL?c++98我们使用的STL中stack,queue是如何实现的?栈一般是deque或vectorqueue一般是deque或者liststack,queue 提供迭代器来遍历空间么?适配器没有迭代器,只有铺push pop opfront back面试题:栈里面的元素在内存中是连续分布的么?原创 2024-04-15 20:56:01 · 400 阅读 · 0 评论 -
AlgorithmDay18
NOTE]!cur->left的结果就是判断cur->left是否为空。原创 2024-04-21 15:54:30 · 395 阅读 · 0 评论 -
AlgorithmDay3
单链 双链 循环链。原创 2024-04-05 23:02:44 · 377 阅读 · 1 评论 -
AlgorithmDay11
对于+-*/这些运算符,它们并不是单个字符,而是由两个字符组成的运算符。在C++中,这些运算符是作为字符串处理的,因此应该使用双引号来表示。另一方面,'(''[''{'')'']''}'都是单个字符,因此使用单引号来表示。原创 2024-04-14 20:16:46 · 301 阅读 · 0 评论 -
AlgorithmDay20
NOTE]return用作:return递归的上一层,而不一定一定是最后结果。又是构造二叉树,昨天大家刚刚做完 中序后序确定二叉树,今天做这个 应该会容易一些, 先看视频,好好体会一下 为什么构造二叉树都是 前序遍历这个留着等二刷,昨天的没搞(因为)NOTE]这次是一起操作两个二叉树了, 估计大家也没一起操作过两个二叉树,也不知道该如何一起操作,可以看视频先理解一下。优先掌握递归。两个二叉树的合并;如果相同的节点,就加起来。不相同就合并为一个树。(考察一起操作两个二叉树)原创 2024-04-23 21:12:35 · 287 阅读 · 0 评论 -
AlgorithmDay7
建议:本题是 使用map巧妙解决的问题,好好体会一下 哈希法如何提高程序执行效率,降低时间复杂度,当然使用哈希法 会提高空间复杂度,但一般来说我们都是舍空间换时间, 工业开发也是这样。题目分析:四个数组,计算有多少个排列组合,能够使得每一个数组取一个数字,相加起来为0思路:判断一个元素是否出现在集合中,就要考虑哈希。注意点:和四数之和有区别的,但是简单一点暴力:四个for循环,on^4。原创 2024-04-09 22:05:34 · 362 阅读 · 0 评论 -
AlgorithmDay8
建议: 本题是字符串基础题目,就是考察 reverse 函数的实现,同时也明确一下 平时刷题什么时候用库函数,什么时候 不用库函数本体就是完全反过来,不能使用库函数的。面试官一定不是考察你对库函数的熟悉程度。所以想一想,它和链表的区别是,他是数组,可以直接swap。原创 2024-04-10 23:22:05 · 415 阅读 · 0 评论 -
AlgorithmDay15
深度优先遍历-递归-先进后出-用栈层序遍历-一层一层遍历-先进先出-队列int可以解决:leetcode102,107,199,637,429,515,116,117,104,111自底向上的层序遍历,就是从头往下的result反转了即可。int注意:reverse函数之后,他会重写在result上,可以直接返回了。右视图题leetcode199// 当前深度还没有节点加入结果中,说明当前节点是该深度的第一个节点// 遍历右子树,因为我们希望右子树的节点能够覆盖左子树的节点。原创 2024-04-17 20:49:00 · 373 阅读 · 0 评论 -
AlgorithmDay21
中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(和 530差不多双指针思路,不过 这里涉及到一个很巧妙的代码技巧。给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。给你一个含重复值的二叉搜索树(BST)的根节点。差值是一个正数,其数值等于两值之差的绝对值。本题其实是比较难的,可以先看我的视频讲解。可以先自己做做看,然后看我的视频讲解。题目:给你一个二叉搜索树的根节点。(即,出现频率最高的元素)。原创 2024-04-26 20:28:57 · 264 阅读 · 0 评论 -
AlgorithmDay16
深度:从根结点到最远叶子结点的最长路径的节点数。表示 N 叉树节点的子节点列表。在 N 叉树中,每个节点可以有多个子节点,因此是一个存储子节点的列表或数组。为什么n叉树要用循环 递归?因为子节点数量不固定!原创 2024-04-18 09:40:25 · 295 阅读 · 0 评论 -
AlgorithmDay4
两两交换 返回交换后的头节点想到递归 迭代 递归的空间一般是on 迭代是o1(不额外)递归的思想:我最终还是要的是从第二个节点开始所以第二个是newhead递归节点自然成了swappair(newhead->next)注意先让head指向递归节点,再让newhead指向head迭代的思想:虚节点 第一节点 第二节点三次改换next操作,循环动起来全靠虚节点的:下一个和下下一个不是nullptr以及cur指向下下下一个(重要的是不动head 免得被绕晕)原创 2024-04-06 23:41:11 · 311 阅读 · 1 评论 -
AlgorithmDay10
栈是先进后出,队列啊是先进先出。栈和队列都是stl里面的数据结构。栈和队列是SGI STL里面的数据结构。“栈只有push和pop而没有走访的迭代器。。因此:栈不是容器,栈是容器适配器。(因为没有迭代器)栈用什么容器呢?无所谓,可以是vector,,list。默认是双向队列的deque,因为封住一端就可以实现栈。原创 2024-04-12 11:38:06 · 366 阅读 · 0 评论 -
AlgorithmDay14
int val;原创 2024-04-17 18:27:43 · 404 阅读 · 0 评论 -
AlgorithmDay17
判断是不是所有节点的左右子树的深度相差不超过 1。其实是判断高度。所以采用:后序遍历+递归递归三部曲:1.终止条件2.返回值和参数返回的是return true3.本层循环的工作后序 求高度如果左右子树的高度差不超过1,我们返回以该节点为根的子树的实际高度,即1加上左右子树中较大的高度。如果左右子树的高度差超过1,我们返回-1表示不是平衡二叉树。原创 2024-04-19 17:57:41 · 375 阅读 · 0 评论 -
AlgorithmDay22
函数中,我们首先判断当前节点是否为空,如果为空,则说明找到了插入位置,我们创建一个新节点,并根据父节点的值和新节点的值的大小关系来确定插入的位置。如果当前节点不为空,我们将当前节点作为父节点,并根据当前节点的值和新节点的值的大小关系来决定向左子树还是右子树递归查找插入位置。最终,我们返回根节点,完成了在二叉搜索树中插入新节点的操作。本题比想象中的简单,大家可以先自己想一想应该怎么做,然后看视频讲解,就发现 本题为什么比较简单了。函数直到找到插入位置,然后将新节点插入到合适的位置。mid题但是easy解。原创 2024-04-26 20:29:28 · 238 阅读 · 0 评论