应用题-链表专题-环形链表
**判断是否有环,通过判断是否能够产生节点的相交** ```python # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x
**判断是否有环,通过判断是否能够产生节点的相交** ```python # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x
借助集合,判断A中是否有B中的节点 ```python # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x #
**删除节点,着重点就去想,怎么找到前驱节点** 至于找到的方法就很多了,下面就是通过间距来确定待删除节点的前驱节点的。 ```python # Definition for singly-linked list. # class ListNode: # def __init_
**链表题目很重要的一点: 不要丢了前驱和后继信息。** ```python # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): #
```python # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # s
可以选择使用单链表或者双链表,设计并实现自己的链表。 单链表中的节点应该具备两个属性:val 和 next 。val 是当前节点的值,next 是指向下一个节点的指针/引用。 如果是双向链表,则还需要属性 prev 以指示链表中的上一个节点。假设链表中的所有节点下标从 0 开始。 提示:
关键点: - 如何统一操作 - 删除节点必须知道前驱结点 ```python # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): #
给定一个 n x m 的整数矩阵,将其用一条水平线或垂直线切成两个非空连通子矩阵,使得两个子矩阵的元素和的差值最小,输出该最小差值。 输入描述 第一行输入两个正整数,代表 n 和 m。 接下来的 n 行,每行输出 m 个正整数。 ``` 输入示例 3 3 1 2 3 2 1 3
**很直观的做法** ```python class Solution: def generateMatrix(self, n: int) -> List[List[int]]: ans = [ [ 0 for _ in range( n ) ] for _
**前缀和**的思想:重复利用计算过的子数组之和,从而降低区间查询需要累加计算的次数。 **前缀和在涉及计算区间和的问题时非常实用。** 特别注意: 在使用前缀和求解的时候,要特别注意 求解区间。 如果要求区间下标[2, 5]的区间和,那么应该是 prefix_sum[5] - p