![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
刷题
Amber_vc
这个作者很懒,什么都没留下…
展开
-
【无标题】
class Solution: # 75. 颜色分类 ''' 给定一个包含红色、白色和蓝色,一共n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、1 和 2 分别表示红色、白色和蓝色。''' def sortColors(self, nums) -> None: n = len(nums) p0 = p1 = 0 for i in range(n...原创 2021-12-15 20:57:34 · 138 阅读 · 0 评论 -
数据结构刷题 第一天
class Solution: # 136. 只出现一次的数字 '''给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。''' def containsDuplicate(self, nums): dic = {} for i in nums: if i in dic: return True else: .原创 2021-12-14 20:14:56 · 251 阅读 · 0 评论 -
剑指 Offer 06. 从尾到头打印链表 & 206. 反转链表(剑指 Offer 24. 反转链表)
题目描述:反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULLpython解决方法1:迭代构建一个虚假的链表头,然后从头到尾迭代每个元素。class Solution: def reverseList(self, head: List...原创 2020-04-15 19:03:01 · 205 阅读 · 0 评论 -
19. 删除链表的倒数第N个节点 & 剑指 Offer 22. 链表中倒数第k个节点
19. 删除链表的倒数第N个节点难度中等876收藏分享切换为英文关注反馈给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的n保证是有效的。进阶:你能尝试使用一趟扫描实现吗?思路:快慢指针快慢指针指向头节点,快指针先走n步,然后慢指针走,快指针走到尾部,...原创 2020-07-08 15:10:25 · 474 阅读 · 0 评论 -
86. 分隔链表
86. 分隔链表给定一个链表和一个特定值x,对链表进行分隔,使得所有小于x的节点都在大于或等于x的节点之前。你应当保留两个分区中每个节点的初始相对位置。示例:输入: head = 1->4->3->2->5->2, x = 3输出: 1->2->2->4->3->5思路:1 创建两个新链表2 遍历链表,比x小的放在before链表中,否则放在after链表中3将两个链表拼接起来注意刚开始创建的...原创 2020-07-08 14:39:06 · 90 阅读 · 0 评论 -
143. 重排链表
143. 重排链表给定一个单链表L:L0→L1→…→Ln-1→Ln ,将其重新排列后变为:L0→Ln→L1→Ln-1→L2→Ln-2→…你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例1:给定链表 1->2->3->4, 重新排列为 1->4->2->3.示例 2:给定链表 1->2->3->4->5, 重新排列为 1->5->2->4->3.方案:先将链表...原创 2020-05-13 09:56:18 · 135 阅读 · 0 评论 -
递归(Recursion)
递归(Recursion)算法思想递归算法是一种调用自身函数的算法(二叉树的许多性质在定义上就满足递归)。举例:(汉诺塔问题)有三个塔 A、B、C,一开始的时候,在塔 A 上放着 n 个盘子,它们自底向上按照从大到小的顺序叠放。现在要求将塔 A 中所有的盘子搬到塔 C 上,让你打印出搬运的步骤。在搬运的过程中,每次只能搬运一个盘子,另外,任何时候,无论在哪个塔上,大盘子不能放在小...原创 2020-04-17 18:04:15 · 160 阅读 · 0 评论 -
160. 相交链表(剑指 Offer 52. 两个链表的第一个公共节点)
160. 相交链表编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8...原创 2020-04-16 23:08:41 · 100 阅读 · 0 评论 -
21. 合并两个有序链表(剑指 Offer 25. 合并两个排序的链表)
21. 合并两个有序链表将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4python递归:class Solution: def mergeTwoLists(self, l1: Lis...原创 2020-04-15 19:49:34 · 343 阅读 · 1 评论 -
876. 链表的中间结点
876. 链表的中间结点给定一个带有头结点head的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.va...原创 2020-04-15 20:42:11 · 87 阅读 · 0 评论 -
237. 删除链表中的节点 & 剑指 Offer 18. 删除链表的节点 & 203. 移除链表元素
237. 删除链表中的节点请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 --head =[4,5,1,9],它可以表示为:示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为5的第二个节点,那么在调用了你的函数之后,该链表应变为 4 ->...原创 2020-04-15 20:11:56 · 126 阅读 · 0 评论 -
链表
链表(LinkedList)单链表:链表中的每个元素实际上是一个单独的对象,而所有对象都通过每个元素中的引用字段链接在一起。双链表:与单链表不同的是,双链表的每个结点中都含有两个引用字段。链表的优缺点链表的优点如下:链表能灵活地分配内存空间; 能在 O(1) 时间内删除或者添加元素,前提是该元素的前一个元素已知,当然也取决于是单链表还是双链表,在双链表中,如果已知该元素的后一...原创 2020-04-15 18:39:48 · 111 阅读 · 0 评论 -
141. 环形链表 142. 环形链表 II
题目描述:给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示例2:输入:head = [1,2], pos ...原创 2020-04-15 18:38:30 · 116 阅读 · 0 评论