yub‘s Algorithmic Adventures
文章平均质量分 58
yub.o
这个作者很懒,什么都没留下…
展开
-
yub‘s Algorithm Adventure Day6
既然是计算相交节点,那么我们就会有公共节点.这里我们称之为node【是的如此普通】看到描述很直接的想到双指针,但是看到题解之后被K佬的神级理解折服,太妙了!双指针加虚拟头节点.原创 2024-10-06 00:42:21 · 162 阅读 · 0 评论 -
yub‘s Algorithmic Adventures_Day5
我们想实现的是1和2交换,3和 4交换,此时很难不想到借用中间变量实现,不用递归实现【每次单独处理头节点】更优雅.与数组不同,链表没必要定义新的链表进行存储【对内存空间的浪费】判断next.next不为空是为了防止空指针异常。和双指针法是一样的逻辑【升华版】注意5后面是空指针就不用交换。直接改变next指针即可.原创 2024-10-05 00:07:12 · 190 阅读 · 0 评论 -
yub‘s Algorithmic Adventures_Day3
其实也可以理解成给入队的队列一个给定的大小变成窗口,先入队元素,然后和target进行比较,大于等于target就出队先进的元素,再进新元素并且标记好原来大于等于target的数组长度.如果循环中的标记位在起始位置,起始位置和终止位置都需要移动一遍和暴力解法无差别,所以我们的标记位一定是终止位.根据题意平方之后的数一定在数组的两端.两个指针一首一尾,从后往前更新数组.一个数列中的元素从左到右依次不减,或者说不降序排列.2.双指针(找准循环不变量中的不变量).3.求连续子数组的总和可用滑动窗口解决.原创 2024-10-02 22:24:58 · 308 阅读 · 0 评论 -
yub‘s Algorithmic Adventures_Day
2.快慢指针.快指针遍历进行筛选,慢指针对应常见存储的数组.找到目标vaule后fast和slow指针拉开距离开始遍历维护更新.【时间复杂度O(n) 空间复杂度O(1)】1.常规遍历数组,比较vaule值是否相等,若不相等往前拷贝覆盖即可,相等跳过,更新下标(可以理解为数组长度减少).【时间复杂度O(n) 空间复杂度O(1)】如笔者理解有误,欢迎指正交流⭐。原创 2024-09-25 14:59:43 · 166 阅读 · 0 评论