- 博客(24)
- 收藏
- 关注
原创 代码随想录算法训练营 DAY14 | 二叉树专题
解析:基本的递归操作,先找到终止条件是root == nullptr ,让后模拟左右反转。然后看成基元操作, 假定已经实现功能的基元操作,最后返回root节点。leetcode 对称二叉树解析: 对称二叉树,终止条件,执行条件运用了过关斩将法,把不可能的的答案排除,留下最后一种才能通关,此时应该缩小视角,将对比条件看成一个个小的节点,而不是一个二叉树。
2023-01-28 23:21:08 141
原创 代码随想录算法训练营 DAY12 | 栈与队列专题
解析:这道题的时间复杂度是o(n) ,相当于另开了一个辅助队列,本道题的亮点是,辅助队列其实可以自己构造,deque 比queue的构造面更广。实现思路是,如果加入的数比前面的数大,就把前面的数全弹出来,在进行填充。原因是,下一个滑动窗口没有前一个滑动窗口的第一个。用priority_queue优先级队列,可以实现大顶堆,还可以自己定义排序方法,同时用vector容器储存元素。解析:牢记住构造队列,是一种非常舒服的数据结构,实际上开始考察STL的构造运用。leetcode 滑动窗口的最大值。
2023-01-27 11:11:02 274
原创 代码随想录算法训练营 DAY11 | 栈与队列专题
解析: 栈模拟消消乐,加辅助vector数组。leetcode 删除字符串所有相邻的重复字符。leetcode 逆波兰表达式。leetcode 有效的括号。解析:遇到加减乘除就消消乐。解析:还是模拟消消乐哦。
2023-01-25 21:46:54 151
原创 代码随想录算法训练营 DAY9 | 字符串专题
解析:利用了STL 和 数学思想, 做了这么多题了,实际上算法就是灵活运用STL和一些特定方法,与数学结合更是妙不可言了。s+s = 2Nm ,破坏首尾 , s+s = 2(N-1)m ,N>=2。推论如果它是的话中间必定出现过,逆否命题,如果中间没出现过,那么一定不是。解析: kmp学了两天还是不会写,绷不住了,没事,我是oop程序员,有STL就先用STL。leetcode 找出字符串中的第一个匹配项。leetcode 重复的字符子串。
2023-01-23 20:08:31 225
原创 代码随想录算法训练营 DAY10 | 栈与队列专题
解析: st1 相当于装填容器,st1只负责push装入, 如果st2 为空,就把st1的所有元素装填进去,让后st2进行弹出即可。解析:一个队列循环成圈,可以模拟栈。leetcode 用队列实现栈。leetcode 栈实现队列。
2023-01-23 17:34:12 72
原创 代码随想录算法训练营 DAY8 | 字符串专题
解析:强烈推荐stringstream的使用,相当于java中的split ,并且可以进一步转化为为任意类型。解析:真的就是对STL的运用啊啊啊啊啊啊。leetcode 反转字符串中的单词。解析: 简单的利用STL 反转函数。leetcode 反转字符串2。leetcode 左旋转字符串。leetcode 反转字符串。解析:双指针原地掉换位置。解析:真没啥好说的。
2023-01-18 20:45:56 86
原创 代码随想录算法训练营 DAY7 | 哈希专题
难道,难道我只能使用最后的必杀技了嘛,我从脑海深处,慢慢拔出双指针这把利剑,双指针?巧妙的使用两个指针,在数组间移动,竟然能达到减少多层for循环的效果。解析: 利用hashmap当中间储存器,分别把前两段的和,和后两段的和统计出来,再遍历两个hashmap来确定四数之和。解析: 其实这道题和leetcode 242 一样的,本质思想都是分门别类把,还是桶思想,把相同的属性放在一个桶里面,没什么特别之处。双指针搭配排序才能发挥出巨大的威力,双指针的根本在于,利用顺序,对比,不断的移动,扩张,收缩。
2023-01-18 18:19:10 102
原创 代码随想录算法训练营 DAY6 | 哈希表专题
hashmap在循环查找的时候也大有用处,相当于用空间换时间了。本来暴力解法两层for循环。用hashmap保存已经遍历过的,开辟新的空间,可以少一次for循环查找。这是hashmap的一种经典用法
2023-01-16 15:12:45 111
原创 代码随想录算法训练营 DAY3 | 链表专题
3.中间的元素,选择跳过删除,头元素选择后移头指针。leetcode 删除链表元素。1.先创建链表指针index。看成两个节点的链表,让后递归。leetcode 反转列表。
2023-01-13 19:09:17 149
原创 构建二叉树模板大全
有许多关于构建二叉树的题目,并且这些题目有固定的模板,我将对这类题目将进行分类总结。本篇致力于让读者能够融会贯通,抓住要领,建立模板化思维,看见一题想到一类。构造二叉树一般分为构造普通的二叉树,和构造二叉搜索树。构造二叉树我们学会一种思想,就是第一步先找当前根节点看哪一个数组能够明确确定根节点。第二步划分左区间,右区间。这里需要考察的是对vector的掌握,明确左开右闭,并且如何拷贝,如何resize。二叉搜索树的构建,也是先寻找当前根节点。只不过这里是对一个vector进行操作。......
2022-08-30 17:38:42 801
原创 第一章 计算机网络和因特网
第一种方式:描述因特网的具体构成,即构成因特网的基本硬件和软件组织。第二种方式:根据分布式应用提供服务的联网基础来描述因特网。
2022-08-29 17:11:08 1281
原创 二叉搜索树统一化解题模板
所有二叉搜索树的题的逻辑就是,对二叉搜索树进行增删查改。 因为中序遍历二叉搜索树等于遍历有序数组,所以我们把二叉搜索树转化为有序数组,对数组的增删查该还不爽么??
2022-08-27 10:33:57 588 1
原创 递归模板
大多数同学遇见递归题目,往往有一种模棱两可的感觉。写递归算法的人,往往分成两种。这篇文章将告诉你递归的真正方法。让你不在迷茫做递归,保证学会!为回溯打下基础
2022-08-25 19:35:31 1130 2
原创 inline 内联函数
使用背景:调用函数一般比直接写在main中的代码执行效率低,因为一次函数调用实际上包含着一系列工作,调用前存放在寄存器中,并在返回时候恢复。这时候使用内联函数可以直接省略这些步骤,相当于写在main函数中。使用方法:其实跟写函数没什么区别,唯一就是在前面。再加上inline标识。...
2022-08-24 22:07:19 91
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人