面试复习-数据结构-图
图可以用邻接表或者邻接矩阵表示
在无权图中找出两个节点最短距离通常用广度优先算法 - 队列实现
在无权图中找出符合条件的路径通常用深度优先算法 - 栈或者递归实现
求最大岛屿面积链接: https://leetcode.cn/problems/max-area-of-island/
123456789101112131415161718192021222324252627282930313233343536373839404142import queueclass Solution: def maxAreaOfIsland(self, grid: List[List[int]]) -> int: lenRows = len(grid) lenCols = len(grid[0]) visited = [[False for _ in range(lenCols)] for _ in range(lenRows)] maxArea = 0 for row in range(lenRows): ...
面试复习-专利
Heterogenous replication in a hybrid cloud database链接:https://patents.google.com/patent/WO2023040954A1/en
该专利旨在解决混合云计算环境中数据冗余的问题,通过将文件拆分为块、计算块签名、比较块签名来识别重复文件,并选择删除候选文件,以减少存储重复数据,提高存储效率。
Protecting container images and runtime data链接: https://patents.google.com/patent/WO2024007733A1/en
在 Kubernetes 中保护敏感容器镜像对于机密计算至关重要,因为需要保护容器资源免受其他容器和主机访问。目前有一些解决方案,如 Kata 和 gVisor,可以限制 Kubernetes Pod 中的容器隔离,还有一些像 Firecracker 的 Hypervisor 可以增强虚拟化。然而,现有解决方案虽然可以隔离 CPU、内存、存储等资源,但无法保护容器镜像和根文件系统免受主机访问,因为所有容器根文件系统都驻 ...
面试复习-Python-面向对象
面向对象编程的特点
封装是将数据和操作数据的方法封装在一个类中,对外隐藏内部的实现细节,只提供一些公共的方法来访问和修改数据。这样可以提高代码的安全性和可维护性,避免外部直接访问和修改内部数据,导致程序出现错误。
继承允许一个类(子类)继承另一个类(父类)的属性和方法,从而实现代码的复用和扩展。子类可以继承父类的所有公共属性和方法,并可以根据需要添加自己的属性和方法,或者重写父类的方法
多态是指同一个方法可以根据调用对象的不同而表现出不同的行为。在 Python 中,多态是通过方法重写和方法重载来实现的。方法重写是指子类重写父类的方法,方法重载是指在同一个类中定义多个同名方法,但参数列表不同。
抽象类是一种不能被实例化的类,它只能作为其他类的父类,用于定义一些抽象方法,这些方法没有具体的实现,需要在子类中实现
12345678910from abc import ABC, abstractmethodclass Shape(ABC): @abstractmethod def area(self): pass @abstractmethod d ...
面试复习-Python-模块
模块模块是一个包含 Python 定义和语句的文件,其作用包括:
代码组织与复用
每个模块都有自己的全局作用域,不同模块中的同名变量和函数不会相互干扰
要点:
模块的搜索路径存在于PYTHONPATH环境变量中,解释器中可以通过sys.path查看
命名空间:局部空间 > 全局空间 > 内建空间
python的对象可以看做一个命名空间,可以通过’.’给其添加属性。
模块导入
import module_name
from module_name import obj1, obj2...
from module_name import obj1 as obj
import module_name as obj
被导入模块只在第一次导入的时候执行
被导入的模块或Python对象遵循全局或者局部作用域的原则
包包是一种组织模块的方式,它可以将多个相关的模块放在一个目录下,以便更好地管理和复用代码。一个包实际上是一个包含 init.py 文件的目录。这个文件可以是空的,也可以包含一些初始化代码,当包被导入时会自动执行。一个拥有子包的目录结构如下:
12345678my_p ...
面试复习-Python-函数
函数的参数组123456789101112131415>>> def myfunc(*args, **kwargs):... print(args)... print(kwargs)...>>> myfunc(1, 2, name="sen")(1, 2){'name': 'sen'}>>> myfunc(1, 2, name="sen", 3) File "<stdin>", line 1 myfunc(1, 2, name="sen", 3) ^SyntaxError: positional argument follows keyword argument>>> myfunc(name="sen")(){'name': ' ...
面试复习-Python-错误与异常
Python中常见的异常123456789101112131415161718192021222324252627282930313233>>> for File "<stdin>", line 1 for ^SyntaxError: invalid syntax>>> nameTraceback (most recent call last): File "<stdin>", line 1, in <module>NameError: name 'name' is not defined>>> 5/0Traceback (most recent call last): File "<stdin>", line 1, in <module>ZeroDivisionError: division by zero>>> f[0]Traceback (most ...
面试复习-Python-文件处理
open函数在 Python 中,open()函数用于打开文件,并返回一个文件对象,通过这个文件对象可以对文件进行各种操作。
12f = open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)f.close()
file:要打开的文件路径,可以是相对路径或绝对路径。
mode(可选):打开文件的模式,默认为’r’(只读模式)。常见的模式有:
‘r’:只读模式,文件必须存在。
‘w’:写入模式,如果文件存在则清空内容,如果文件不存在则创建新文件。
‘a’:追加模式,在文件末尾追加内容,如果文件不存在则创建新文件。
‘b’:二进制模式,可以与其他模式结合使用,如’rb’(二进制只读模式)、’wb’(二进制写入模式)。。
‘t’:文本模式(默认),可以与其他模式结合使用,如’rt’(文本只读模式)、’wt’(文本写入模式)。
buffering(可选):设置缓冲策略。默认为 - 1,表示使用系统默认的缓冲策略 ...
面试复习-Python-流程控制
分支语句
if-elif-else
12345678910>>> string = 'hello world'>>> string_len = len(string)>>> if string_len > 10:... print("too long")... elif 2 < string_len < 5:... print("okay")... else:... print("too short")...too long
三目运算 too_long = True if len(string) > 10 else False
循环语句
for-in
while
break
continue
else: 循环语句中的else在循环顺利完成后执行,即没有被break
迭代器在 Python 中,迭代器是一种实现了迭代器协议的对象。迭代器协议包括两个方法:__iter__() 和 __nex ...
面试复习-Python-数据类型
Python 是一种高级编程语言,具有丰富的数据类型。了解这些数据类型对于有效地编写 Python 代码至关重要。以下是对 Python 主要数据类型的详细介绍。
Python使用对象模型来存储数据,一个python对象通常包含ID,Type, Value。
Python数据类型的分类标准类型:
数字
整型
长整型
浮点型
复数
布尔型
字符串
列表 (可变)
元组
字典 (可变)
其他内置数据类型:
类型
None
文件
集合
函数
模块
类
布尔值为False的对象: None, False, 0, 0.0, 0L, 0.0+0.0j, "", [], (), {} (JS中[], {}转换成布尔值后为true)
标准类型的操作符
数值比较操作符有: < > <= >= == != <>
ID比较: is 和 is not
逻辑运算: and or not
用于标准类型的内置函数: type(o) repr(o) str(o) isinstance(o, O) id(o)
序 ...
AI-数学基础之线性代数【草稿】
线性方程组\begin{cases}c_{11}x_1 + c_{12}x_2 +\cdots + c_{1n}x_n = d_1\\c_{21}x_1 + c_{22}x_2 +\cdots + c_{2n}x_n = d_2\\\vdots\\c_{m1}x_1 + c_{m2}x_2 +\cdots + c_{mn}x_n = d_m\end{cases}
用矩阵表示线性方程组
系数矩阵:去掉未知数和常数形成的矩阵\begin{pmatrix}c_{11} & c_{12} &\cdots & c_{1n}\\c_{21} & c_{22} &\cdots & c_{2n}\\\vdots &\vdots &\ddots &\vdots\\c_{m1} & c_{m2} &\cdots & c_{mn}\end{pmatrix}
增广矩阵:系数矩阵加上常数\begin{pmatrix}c_{11} & c_{12} &\cdots & c_{1n} &\ ...