概述
思想:设一个快指针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,则右指针元素覆盖左指针元素,循环直至遍历完毕。
最后
以上就是甜蜜小蚂蚁为你收集整理的双指针删除数组中指定元素的全部内容,希望文章能够帮你解决双指针删除数组中指定元素所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复