Shawngbk / Leecode

Questions of Leecode
0 stars 0 forks source link

27.Remove Element #7

Open Shawngbk opened 7 years ago

Shawngbk commented 7 years ago

认真观察删除操作的性质会发现,删除一个元素不过就是把他后面的元素向前移动一位,那删除两个不就是移动两位,三个就是三位。。。以此类推。 所以我们只用在遍历数组的时候跟踪删除的个数n,然后同时将元素向后挪动n位就可以了 public class Solution { public int removeElement(int[] nums, int val) { if(nums.length == 0) return 0; int count = 0; for(int i = 0; i < nums.length; i++) { if(nums[i] == val) { count ++; } else { nums[i-count] = nums[i]; } } return nums.length - count; } }