题目如下:
看到移除数组中某个元素的值就很有劲,因为Python里恰好有统计元素个数和删除指定元素的BIF,所以就一遍通过了。
class Solution:
def removeElement(self, nums: List[int], val: int) -> int:
while nums.count(val) != 0: #当数组中该元素的个数不为0时,删除该数
nums.remove(val)
return len(nums)
用Python写确实简单,但是却不能培养数学思维。
以下是c语言的方案:
int removeElement(int* nums, int numsSize, int val){
if(numsSize==0) return 0; //排除不必要的失误
int a=0,b=0; //a表示原nums数组的第a项(遍历一遍),b表示结果的nums数组的第b项
while(a<numsSize)
{
if(nums[a]!=val)
{
nums[b++] = nums[a]; //只有nums[a]不等于val时它才等于它自己,否则就会被覆盖
}
a++;
}
return b; //返回结果的nums数组的长度
}