leetcode解题笔记-Remove Element

题目要求:

去除所有数组内与所给值相等的元素,并且返回新数组的长度。

个人解法:

1.定义一个int len=nums.length当有nums[i]==value时,len--,但是这个仅仅是返回新数组的长度,并没有做到剔除相等元素

参考解法:

1.核心在于,i的值从前往后,len的值从后往前

2.i在外循环递增,len在内循环递减

3.利用nums[--len]的值来代替与value相等的值

代码:

for(int i=0 ;i< len; i++){

while(nums[i]==value&&i<len)

nums[i]=nums[--len]

}

最后,有关i--与--i,一个是先赋值再运算,另外一个是先运算再赋值,例如题中如果--len改为len--就会导致边界溢出

posted @ 2015-08-08 04:46  haochen_Mark  阅读(95)  评论(0编辑  收藏  举报