1、重排链表(lc143)
利用线性表存储该链表,然后利用线性表可以下标访问的特点,直接按顺序访问指定元素,重建该链表即可。
代码如下:
class Solution: def reorderList(self, head: ListNode) -> None: if not head: return vec = list() node = head while node: vec.append(node) node = node.next i, j = 0, len(vec) - 1 while i < j: vec[i].next = vec[j] i += 1 if i == j: break vec[j].next = vec[i] j -= 1 vec[i].next = None
时间复杂度:O(N)
空间复杂度:O(N)
N 是链表中的节点数。
2、爬楼梯(lc70)
思路:动态规划
代码如下:
def climbStairs(self, n: int) -> int: a = b = 1 for i in range(2, n + 1): a, b = b, a + b return b
3、CNN的卷积公式
卷积层计算公式如下:
其中,W为输入大小,K为卷积核大小,P为 padding大小,S为步幅。
如果,想保持卷积前后的特征图大小相同,通常会设定padding为: