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; }