leetcode 删除元素的题,讨论区中看到了一个非常巧妙的算法,如下:
int removeElement(int* nums, int numsSize, int val) {
int i, j;
//j在后面定位,表示数组中第一个与所查元素不同的位置,
//如果找到所查元素就将值替换过去,j往前移一位,根据j的值返回数组的长度
//非常精妙
for(i = j = numsSize - 1; i >= 0; i--)
if(nums[i] == val && i != j--)
nums[i] = nums[j+1] ;
return j+1;
}
本文介绍了一个解决LeetCode删除元素问题的高效算法。该算法通过双指针技巧实现,能够在遍历过程中直接调整数组内容并更新数组长度,避免了额外的空间开销。
196

被折叠的 条评论
为什么被折叠?



