27. Remove Element
题目来源:27. Remove Element
自我感觉难度/真实难度: 写题时间时长:
题意:
把一个list 中target的数字,去掉。其他数字放到前面去。并且返回开头不是target的长度。
分析:
一开始,自己是想通过换位置来,把target的数字放到后面去,但是发现这样还是太笨
自己的代码:
class Solution: def removeElement(self, nums: List[int], val: int) -> int: l=len(nums) j=l-1 i=0 while i<=j: if nums[i]==val: nums[i]=nums[j] j-=1 else: i+=1 return i
Runtime: 48 ms, faster than 18.49% of Python3 online submissions forRemove Element.
Memory Usage: 13.4 MB, less than 5.16% of Python3 online submissions for Remove Element.
代码效率/结果:
优秀代码:
class Solution: def removeElement(self, nums: List[int], val: int) -> int: l = 0 for i in range(len(nums)): if nums[i] != val: nums[l] = nums[i] l += 1 return l
直接把需要的数字,放到前面就可以了
代码效率/结果:24ms
自己优化后的代码:
反思改进策略:
1.对于这些数字调换的问题,一定要考虑,换位置之后,是否还有用,如果没有用的话,可以直接采用替换的方法来做