首页 > 其他 > 详细

leetcode解题笔记-Remove Element

时间:2015-08-08 06:38:53      阅读:211      评论:0      收藏:0      [点我收藏+]

题目要求:

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

个人解法:

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--就会导致边界溢出

leetcode解题笔记-Remove Element

原文:http://www.cnblogs.com/whaochen/p/4712435.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!