【代码】
27 移除元素
参考https://www.bilibili.com/video/BV1Pv4y1Z76N
不用管移除后半部分是否为正确答案,所以可直接nums[flag]=nums[i]
class Solution { public int removeElement(int[] nums, int val) { if(nums==null||nums.length==0) return 0; int flag=0; for(int i=0;i<nums.length;i++){ if(nums[i]!=val){ nums[flag]=nums[i]; flag++; } } return flag; } }
更规范的话,是把i点和flag点位置的元素进行交换(参考283)
283 移动0
class Solution { public void moveZeroes(int[] nums) { int j = 0; for(int i = 0; i < nums.length; i++) { if(nums[i] != 0) { int temp = nums[j]; nums[j] = nums[i]; nums[i] = temp; j++; } } } }