给定一个数组nums和一个值val,原地移除所有数值等于val的元素,返回移除后数组的新长度和新数组。不要使用额外的数组空间。
例如,给定nums=[3,2,2,3],val=3,函数应该返回新的长度2,并且nums中的前两个元素均为2,不需要考虑数组中超出新长度后面的元素。要求设计满足题目条件的如下方法:
请踊跃发表意见,只采纳源代码,该问题只限于学习交流使用.
给定一个数组nums和一个值val,原地移除所有数值等于val的元素,返回移除后数组的新长度和新数组。不要使用额外的数组空间。
例如,给定nums=[3,2,2,3],val=3,函数应该返回新的长度2,并且nums中的前两个元素均为2,不需要考虑数组中超出新长度后面的元素。要求设计满足题目条件的如下方法:
def removeElement(a,b):
for i in range(0,len(a)): #把数组第一个元素设置为该数组出现的第一个不是val的值
if a[i] != b:
a[0] = str(a[i])
a[i] = b #把原数组中出现的第一个不是val的元素设置为val
break #跳出第一个for循环
for i in range(1,len(a)):
if a[i] != b:
a[1] = str(a[i]) #把数组第二个元素设置为数组i不是val的值
a[0] = ''.join(a[0:2]) #把数组第一个元素更新为:数组前两个元素拼接成的字符串
return(a[0],len(list(str(a[0]))))