小米计算机视觉算法工程师面试题

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为:

你可能感兴趣的:(大厂AI面试题,人工智能,机器学习,深度学习,计算机视觉)