删除元素
题目
给定一个数组和一个值,在原地删除与值相同的数字,返回新数组的长度。
元素的顺序可以改变,并且对新的数组不会有影响。
样例
给出一个数组 [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