算法与数据结构刷题
算法与数据结构刷题
shaoyuhuhu
这个作者很懒,什么都没留下…
展开
-
代码随想录跟练打卡Day17
如果左右子树都满足二叉树,则计算左右子树高度,如果还满足,则返回本轮计算的最大高度+1。什么是平衡二叉树:二叉树中所有节点中左右子树高度差不超过1。计算左右子树高度,如果不满足平衡二叉树,则返回-1。1、判断终止条件:到叶子结点终止,终止时收集。原创 2024-01-04 23:49:43 · 374 阅读 · 1 评论 -
代码随想录跟练打卡Day14
1、确定递归函数的参数和返回值。深度优先搜索:前中后序遍历。3、确定单层递归的逻辑。原创 2023-12-13 10:57:56 · 338 阅读 · 1 评论 -
代码随想录跟练打卡Day11
解题关键:使用栈解决:栈不为空则比较pop的值是否等于当前值,否则压栈。注意,stack是列表,返回时写法"".join(stack)注意:第一个弹出的值时第二个值。所以除法的时候应该注意顺序。第二:循环过程中:不匹配(要先判断是否为空)第一:循环过程中:栈为空。第三:循环结束后栈不为空。原创 2023-12-10 17:03:23 · 354 阅读 · 1 评论 -
代码随想录跟练打卡Day10
实现队列需要用两个栈来进行操作。一个用来入栈,一个用来出栈。然后将入栈中的元素全部pop出去给出栈。只要出栈不为空则一直从出栈弹出元素,当出栈为空时,继续讲入栈元素弹入进出栈列表中。python 中有deque这个数据结果,可以直接使用。需要注意pop时,要先判断队列是否为空。python中用列表进行两者操作。2、用队列实现栈操作。原创 2023-12-10 15:47:34 · 396 阅读 · 1 评论 -
代码随想录跟练打卡Day7
解题关键:在三数之和的基础上套两层for循环,注意第二层for循环的去重条件。再循环赎金信中的字母,如果不在则返回假,注意还有一种情况是字母用完即count[key]=0。如果存在,则count[key]-=1需要用掉一个字母;解题思路:首先记录杂志中每个字母出现的个数到字典中。454.四数相加II。原创 2023-12-05 23:02:59 · 841 阅读 · 0 评论 -
代码随想录跟练打卡Day6(Day5休息)
242.有效的字母异位词。349. 两个数组的交集。原创 2023-12-04 17:54:20 · 422 阅读 · 0 评论 -
代码随想录跟练打卡Day3
解题关键:学习链表中虚拟头节点的使用。dummy_head = Listnode(next=head)目的:使得链表中的每一个元素都能用同样的方法取得。原创 2023-12-04 17:51:57 · 356 阅读 · 0 评论 -
代码随想录跟练打卡Day2
解题关键点:数组有序,因存在负数,最大值仅可能存在数组两端。因此可用双指针方法。一个指向头部一个指向尾部,齐头并进。需要注意,定义的新数组,不能为空数组。原创 2023-11-30 13:51:23 · 370 阅读 · 0 评论 -
代码随想录跟练打卡day1
left与middle赋值为middle时,均不包含middle。目的找出新数组(即不等与val的元素)循环体 left原创 2023-11-29 20:57:27 · 370 阅读 · 0 评论 -
代码随想录跟练打卡Day13
double end quene (双向队列)使用双向链表来实现或数组实现。这个队列,有三个功能,push,pop,front。先把k个数字push进去,再循环数组(k,len(nums))push的时候:删除队列末尾比push的数字小的全部值。pop的时候:仅对首最大值等与value的时候才pop。依次执行pop,push,front操作。python中的数据结构deque。python中heapq的操作。大顶堆:父节点均大于子节点。小顶堆:父节点均小于子节点。本题使用小顶堆进行操作。原创 2023-12-11 23:00:17 · 367 阅读 · 1 评论