要求将算法1~6设计为3. 3. 4节定义的顺序表Dy
要求将算法1~6设计为3. 3. 4节定义的顺序表DynamicArrayList类的方法。
4.设计尽可能高效的算法,删除顺序表中所有值为x的元素。
答案
class DynamicArrayList: def __init__(self): self.data = [] def remove_all_x(self, x): """删除顺序表全部等于x的元素,双指针原地算法""" j = 0 # j:保留元素写入位置 n = len(self.data) for i in range(n): if self.data[i] != x: self.data[j] = self.data[i] j += 1 # 截断,新长度为j self.data = self.data[:j]