leecode-数组-27Remove Element-java
27.Remove Element
https://leetcode.com/problems/remove-element/
看起来很简单的样子,甚至准备直接写。还是图样图森破,很多地方出了岔子。改了好半天。警醒自己!!总是想不全面。有点小难过。
public static int removeElement(int[] nums, int val) {
int i=0,j;
int llength=nums.length;
while(i<llength)//这里不要用for循环,即使用的话也不能在这里++。因为数组长度在出现相同数的时候会改变,同时nums[i]位置的数也会改变,如果++ 不能判定当前的i处是不是==val.
{
if(nums[i]==val)
{
for(j=i+1;j<llength;j++)
{
nums[j-1]=nums[j];
}
llength--;//一定是在移完数据以后再--。
}
else i++;//只有else的时候++ ,相等的时候,会出现数字前移,需要继续判断当前位置的数据。
}
return llength;
}

浙公网安备 33010602011771号