一、题目1
二、思路
与26题思路相似,将不是删除的数字往前移。
具体的方法就是,使用一个指针指向非删除数字串的下一个内存,发现非删除数字的时候,将值存在这个位置中,将指针加一。因为指针指向的位置至少在当前循环的位置,所以不会出现缺字的情况。
三、代码
public class T0027 {
public T0027(){
/* int[] nums = { 3,2,2,3 };
System.out.println( removeElement(nums, 3 ) );
for ( int i : nums )
System.out.print( i +"\t");*/
int[] nums = { 0,1,2,2,3,0,4,2 };
System.out.println( removeElement(nums, 2 ) );
for ( int i : nums )
System.out.print( i +"\t");
}
public int removeElement(int[] nums, int val) {
int len = 0;
for ( int i = 0; i < nums.length; i++ ){
if ( nums[i] != val ){
nums[len++] = nums[i];
}
}
return len+1;
}
public static void main(String[] args) {
T0027 t0027 = new T0027();
}
}
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/remove-element
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 ↩︎