删除元素
题目
给定一个数组和一个值,在原地删除与值相同的数字,返回新数组的长度。
元素的顺序可以改变,并且对新的数组不会有影响。
样例
给出一个数组 [0,4,4,0,0,2,4,4],和值 4
返回 4 并且4个元素的新数组为[0,0,0,2]题解
定义一个变量存储新数组长度newIndex,从第一个数开始遍历,只要和目标数不同则将该数复制给A[newIndex],并将newIndex++,直至结束。
public class Solution {
/**
*@param A: A list of integers
*@param elem: An integer
*@return: The new length after remove
*/
public int removeElement(int[] A, int elem) {
int newIndex = 0;
for (int oldIndex = 0; oldIndex < A.length; oldIndex++)
{
if (A[oldIndex] != elem)
{
A[newIndex++] = A[oldIndex];
}
}
return newIndex;
}
}
Last Update 2016.9.7
本文介绍了一个简单的算法,用于在数组中删除指定值的所有实例,并返回更新后的数组长度。该算法通过一次遍历实现,适用于需要高效处理数组元素删除场景。
1万+

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



