X Tutup
package RemoveElement027; /** * Created by Administrator on 2017/10/8. * 一个指针从前往后走,如果遇到要删除的元素, * 就从后面调一个不需要删除的元素替换它,直到结束。复杂度是O(n), * 因为每个元素最多被访问一次。 */ public class Re { public int removeElement(int[] nums,int val){ if(nums==null) return 0; int len=nums.length-1; for(int i=0;i<=len;i++){ if(nums[i]==val){ //这里交换元素后,自减重新判断是否相等 nums[i--]=nums[len--]; } } return len+1; } public static void main(String[] args){ int[] nums={3,2,2,3}; int val=3; int ret=new Re().removeElement(nums,val); System.out.print(ret); } }
X Tutup