代码
文章平均质量分 78
FITA泽啊
这个作者很懒,什么都没留下…
展开
-
代码随想录算法训练营第14天 | 144.二叉树的前序遍历 + 94.二叉树的中序遍历 + 145.二叉树的后序遍历
目录今日任务:二叉树理论基础:二叉树的种类:满二叉树:完全二叉树: 二叉搜索树:平衡二叉搜索树:二叉树的存储方式:二叉树遍历方式:编辑 二叉树的定义: 144.二叉树的前序遍历递归遍历: 迭代遍历: 编辑94.二叉树的中序遍历递归遍历: 迭代遍历:145.二叉树的后序遍历递归遍历: 迭代遍历: 144.二叉树的前序遍历题目链接:144. 二叉树的前序遍历 - 力扣(LeetCode) 94.二叉树的中序遍历题目链接:94. 二叉树的中序遍历 - 力扣(LeetCode)原创 2023-09-04 21:04:38 · 33 阅读 · 0 评论 -
代码随想录算法训练营第13天 | 239. 滑动窗口最大值 + 347.前 K 个高频元素
大顶堆:每个节点(叶节点除外)的值都大于等于其子节点的值,根节点的值是所有节点中最大的。小顶堆:每个节点(叶节点除外)的值都小于等于其子节点的值,根节点的值是所有节点中最小的。原创 2023-09-01 18:25:21 · 146 阅读 · 1 评论 -
代码随想录算法训练营第11天 | 20.有效的括号 + 1047.删除字符串中的所有相邻重复项 + 150.逆波兰表达式求值
【代码】代码随想录算法训练营第11天 | 20.有效的括号 + 1047.删除字符串中的所有相邻重复项 + 150.逆波兰表达式求值。原创 2023-08-30 16:15:17 · 111 阅读 · 1 评论 -
代码随想录算法训练营第10天 | 232.用栈实现队列 + 225.用队列实现栈
【代码】代码随想录算法训练营第10天 | 232.用栈实现队列 + 225.用队列实现栈。原创 2023-08-29 20:48:11 · 79 阅读 · 1 评论 -
代码随想录算法训练营第9天 | 字符串总结 + 双指针回顾
打基础的时候,不要太迷恋于库函数。习惯于调用split,reverse之类的库函数,却不知道其实现原理,也不知道其时间复杂度,这样实现出来的代码,如果在面试现场,面试官问:“分析其时间复杂度”的话,一定会一脸懵逼!建议如果题目关键的部分直接使用库函数就可以解决,就不要使用库函数。如果库函数仅仅只是解题过程中的一小部分,并且你已经很清楚这个库函数的内部实现原理的话,可以使用库函数。原创 2023-08-28 21:29:47 · 140 阅读 · 0 评论 -
代码随想录算法训练营第8天 | 344.反转字符串 + 541. 反转字符串II + 剑指Offer 05.替换空格 + 151.翻转字符串里的单词 + 剑指Offer 58-II.左旋转字符串
毕竟面试官一定不是考察你对库函数的熟悉程度, 如果使用python和java 的同学更需要注意这一点,因为python、java提供的库函数十分丰富。注意:split()既遇到空格就省略 ,split(‘ ’)一个空格就划分(if‘ ’,划分为[' ',' '])因为步长为k所以每次遍历得到的相邻字符串顺序都是不一样的,所以每次遍历都将flag取反。每次遍历得到的字符串记为a,经过flag操作后添加到结果上,一次遍历就可以得到结果。定义一个ans空字符串存放结果,flag用来指定是否翻转。原创 2023-08-24 11:08:50 · 91 阅读 · 1 评论 -
代码随想录算法训练营第7天 | 454.四数相加II + 383. 赎金信 + 15. 三数之和 + 18. 四数之和
四数之和的双指针解法是两层for循环nums[k] + nums[i]为确定值,依然是循环内有left和right下标作为双指针,找出nums[k] + nums[i] + nums[left] + nums[right] == target的情况,三数之和的时间复杂度是O(n^2),四数之和的时间复杂度是O(n^3)。的双指针解法是一层for循环num[i]为确定值,然后循环内有left和right下标作为双指针,找到nums[i] + nums[left] + nums[right] == 0。原创 2023-08-23 23:08:09 · 38 阅读 · 0 评论 -
代码随想录算法训练营第6天 | 242.有效的字母异位词 + 349. 两个数组的交集 + 202. 快乐数 + 1. 两数之和
例如冲突的位置,放了小李,那么就向下找一个空位放置小王的信息。思路:将这所学校里学生的名字都存在哈希表中,查询时通过索引直接就可以知道这个名字是否在这个学校中,将学生名字映射到哈希表上就涉及到了hash function。其实拉链法就是要选择适当的哈希表的大小,这样既不会因为数组空值而浪费大量内存,也 不会因为链表太长而在查找上浪费太多时间。刚刚小李和小王在索引1的位置发生了冲突,发生冲突的元素都被存储在链表中。复杂度:如果使用枚举法为O(n),哈希表为O(1)分析: 题目中说了会。原创 2023-08-22 18:07:06 · 119 阅读 · 1 评论 -
代码随想录算法训练营第4天 | 24. 两两交换链表中的节点 + 19.删除链表的倒数第N个节点 + 160. 链表相交 + 142.环形链表II
即使A、B不相交,代码也不会死循环,因为它们长度的最小公倍数不会变,若不相交。最终都会指向null,此时相等,跳出循环。原创 2023-08-20 23:16:56 · 61 阅读 · 1 评论 -
代码随想录算法训练营第3天 | 203.移除链表元素 + 707.设计链表 + 206.反转链表
删除节点:只需要将上一个节点的next 指向下个节点 (python有自己的内存回收机制,不用手动释放)原创 2023-08-19 20:39:56 · 84 阅读 · 0 评论 -
代码随想录算法训练营第2天 | 977.有序数组的平方 + 209.长度最小的子数组 + 59.螺旋矩阵II
3.我们要画每四条边,这四条边怎么画,每画一条边都要坚持一致的左闭右开,或者左开右闭的原则,这样这一圈才能按照统一的规则画下来。1.坚持循环不变量原则。原创 2023-08-17 11:11:57 · 44 阅读 · 1 评论 -
代码随想录算法训练营第1天|704.二分查找 + 27.移除元素
分析:有两个指针,一个快指针在前方对数组进行探测,当发现不满足条件的元素的时候,就将慢指针所指的空间填入该元素,慢指针往后移动一个地址,最终慢指针(下标)即为满足条件的新数组的长度。已经在循环开始时确定了,而不会受到循环中的修改影响。如果你希望在循环中改变循环的迭代次数,使用。注意:之所以用while 不使用 for i in range(l) 因为。循环并根据需要来控制循环的终止条件。因数组为不可删除,因此只可以覆盖。原创 2023-08-16 17:30:49 · 87 阅读 · 1 评论 -
代码随想录——数组
Q1:数组在内存在中的存储方式?数组是存放在连续内存空间上的相同类型数据的集合Q2:对于C++,注意区分vector与array的区别,vector的底层是array;严格来讲vector是容器Q3: 二维数组在内存空间中是连续分布的么?不同编程语言内存管理是不同的。c++中二维数组是连续分布的可以看出二维数组的地址可以连续一条线,类似于下图在c++中,二维数组在地址空间上是连续的。原创 2023-07-04 19:00:26 · 34 阅读 · 0 评论