题目要求:
去除所有数组内与所给值相等的元素,并且返回新数组的长度。
个人解法:
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--就会导致边界溢出
时间: 2024-10-07 22:56:48