思想:设一个快指针fast用于筛选出新数组元素,和一个慢指针slow用于更新新数组的元素.
时间复杂度:0(n)
简易代码:
int low=0;
int fast=0;
for(fast=0;fast<n;fast++){
if(fast!=delete_value){
a[slow++]=a[fast];
}
}
另一种双向指针left 和right(改变元素之间的相对位置,且移动元素个数最少)
思路:左指针left从左边遍历指向 第一个待删除的元素,右指针right从右向遍历指向第一个非待删除元素,若left<right,则右指针元素覆盖左指针元素,循环直至遍历完毕。
最后
以上就是甜蜜小蚂蚁最近收集整理的关于双指针删除数组中指定元素的全部内容,更多相关双指针删除数组中指定元素内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复