题目:
已知长度为n的线性表A,采用顺序存储结构,设计一个时间复杂度为O(n),空间复杂度为O(1)的算法,将线性表A中所有值为X的元素删除,X为任意整数。
思想:
- 采用标准的删除操作,每次寻找到X的时候将后面所有元素前移一位
- 遍历表中不等于X的元素,将他们插入到一个新的表中
- 采用双指针,工作时一快一慢,不等于X就插入到前一个指针的位置
- 记录元素的值为X的元素的个数,记为k,当遇到元素的值等于X时,a[i-k]
= a[i],元素不为X时候,k++
题目:
已知长度为n的线性表A,采用顺序存储结构,设计一个时间复杂度为O(n),空间复杂度为O(1)的算法,将线性表A中所有值为X的元素删除,X为任意整数。
思想: