- 博客(6)
- 收藏
- 关注
原创 链表de总结Ⅱ
链表基础操作:get(index)、addATHead(val)、addATTail(val)、addATIndex(index, val)和deleteATIndex(index)。每一个节点由两部分组成,数据域和指针域(存放下一个节点的指针),最后一个节点的指针域指向null(即空节点)。链表存储方式:内存中不连续分布,散乱分布在内存中的某个地址上,分配机制取决于操作系统的内存管理。链表适用场景:插入/删除 o(1),查询o(n),适用于数据量不固定,频繁增删,较少查询。双指针:巧妙运用双指针。
2025-12-13 13:19:22
375
原创 贪心de总结
2、贪心算法无固定套路,有可能是一些常识性的推导。当不确定是否可以用贪心的时候,尝试举反例。涉及到两位维度相互影响时,需要先确定下其中一个维度,再确定另外一个维度。1、贪心本质是选择每一阶段的局部最优从而达到全局最优。1、贪心问题总体上感觉比之前的简单,主要难点在于思路。需要将整数转换成字符串操作。1、买卖股票的最佳时机II。3、最少数量的箭引爆气球。2、根据身高重建队列。
2025-09-16 11:09:06
305
原创 回溯de总结
去重:去重的是“同一数层上的使用过”, candidates[i-1] == candidates[i-1] and i >startindex.层级去重:i>0 and nums[i] == nums[i-1] and not used[i-1]。2、几大关键点:是否需要startindex,层级去重还是树层去重,是否需要将单层结果存储到结果中。②切割问题中递归如何中止;剪枝优化:for循环选择的起始位置之后的元素个数已经不足需要的元素个数,就没有必要搜索。1、回溯是递归的副产品,只要有递归就会有回溯。
2025-09-14 06:45:50
1833
原创 二叉树de总结
②完全二叉树:除最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。④平衡二叉搜索树:平衡二叉搜索树是一颗空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一颗平衡二叉树。①满二叉树:二叉树只有度为0的节点和度为2的节点,并且度为0的节点在同一层上。2、有了思路之后的题目一般都能顺利AC,小问题也少了很多,其实能感觉到自己的进步的。1、二叉树:二叉树是每个节点最多有两个子节点(左子节点和右子节点)的树形结构。遍历方式:层次遍历。
2025-09-01 22:56:44
1588
原创 链表de总结
1、删除链表的倒数第N个节点:fast节点移动n步后,fast和slow同时移动,直至fast指向链表末尾。2、链表分类:单链表(val, next)、双链表(prev, val, next)(头节点prev -> null)、循环链表(单链表,尾节点指针域指向头节点)。添加节点:将该节点的指针域指向需要添加的节点的数据域,并把添加的节点的指针域指向该节点的后一个节点的数据域。5、删除节点:将该节点的前一个节点的指针域指向该节点的后一个节点,python中无需释放内存。链表里快慢指针用的比较多。
2025-08-09 18:08:51
298
原创 数组de总结
1、边界条件:区间的定义,区间的定义就是不变量。需要在二分查找的过程中,保持不变量,就是在while寻找中每一次边界的处理都要坚持根据区间的定义进行操作,即循环不变量的规则。2、注意点:二分查找包括左闭右开( while(left < right) )、左闭右闭( while(left <= right) )等情况。3、数组内存空间的地址是连续的,因此在进行增删改的时候,需要移动其他元素地址。有序数组平方:双指针分别放置最左和最右,对比双指针的值后存储在另外一个列表中。3、时间复杂度:O(log n)。
2025-08-08 19:43:25
655
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅