要求将算法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]

题目信息

题号:8228
题型:简答题
知识点:Python
难度:普通