算法学习
文章平均质量分 92
强风吹拂y
这个作者很懒,什么都没留下…
展开
-
[算法学习07]环形链表
快慢指针的使用是本节的核心。我们有一个链表[1,2,3,4,5],如何找到中间的那个节点呢?我们可以设计一个快指针以及一个慢指针,初始的时候都赋值为链表的起点,快指针每次走两步,慢指针每次走一步。那么当快指针走到链表的末尾时,慢指针就正好停在了中间的位置。以下是今天的例题。原创 2024-03-18 22:11:39 · 698 阅读 · 1 评论 -
[算法学习06] 反转链表
简单题,需要三个指针, pre,cur,nxt.pre 是前一个指针, cur是当前指针, nxt是临时指针用于存在当前节点的下一个节点。反转链表 就是 cur.next = pre pre = cur cur = nxt 直到cur is None循环结束值得注意的是, 当cur == None pre正好是反转后链表的表头递归写法,要有出口!我们出口是什么?当找到最后一个节点的时候也就是我们反转后链表的头就是出口!所以 if head.next is None: return head。原创 2024-03-17 20:08:49 · 781 阅读 · 1 评论 -
[算法学习05] 非有序数列的情况下使用二分查找
算是对二分的一个小进阶,在数组不是有序排列的情况使用二分法得到答案。原创 2024-03-08 14:45:01 · 878 阅读 · 1 评论 -
[算法学习04] 二分查找系列
给你一个按照非递减顺序排列的整数数组nums,和一个目标值target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值target,返回[-1, -1]。你必须设计并实现时间复杂度为O(log n)的算法解决此问题。示例 1:nums = [[3,4]示例 2:nums = [[-1,-1]示例 3:[-1,-1]nums是一个非递减数组解题思路:在了解了上面的内容以后,这道题就显得非常容易了。原创 2024-03-02 15:50:27 · 808 阅读 · 1 评论 -
[算法学习03] 同向双指针的使用
本节是同向双指针的学习。同向双指针的使用前提,单调性(数组中所有元素的性质一样(正数、字母....))。先贴上灵神的链接。涉及题目主要有。原创 2024-02-29 21:13:58 · 795 阅读 · 0 评论 -
[算法学习02]相向双指针之盛最多水的容器
这节是对相向双指针的进一步应用。原创 2023-12-06 15:48:33 · 884 阅读 · 0 评论 -
[算法学习01]相向双指针的使用
暂时没什么想说的,继续努力吧。原创 2023-12-04 17:21:37 · 984 阅读 · 0 评论 -
[算法学习08] 一些链表题
解题思路脑筋急转弯.直接用后一个节点的值覆盖当前的节点,然后删除后一个节点即可。如果我们要删除某个节点,那么必须有它的前驱节点。这题没有,所以可以通过值得转移来完成。以下是代码。原创 2024-03-20 12:07:33 · 301 阅读 · 1 评论