很简单的一道题,基本不用思考,可以说我想了很长时间为什么这么简单。。。。
先上我的代码:
class Solution(object):
def moveZeroes(self, nums):
"""
:type nums: List[int]
:rtype: void Do not return anything, modify nums in-place instead.
"""
for i in range(len(nums) - 1, -1, -1):
if nums[i] == 0:
nums.pop(i)
nums.append(0)
不过逛Solutions的时候发现一个更简洁的。。。。
nums.sort(key= lambda x: 1 if x == 0 else 0)
又是各种one line python系列。。。
查了一下python的手册,发现sort里这个key参数,是用来定义如何比较一个序列中元素大小的一个函数,默认直接比较元素大小,上面用lambda给出的key函数就是假如元素是0就最小,假如不是0就都一样大,所以最后能达到题目要求。
不得不说,python提供的东西真是方便得多,又想起拿OC和JAVA写很多行比较函数的时候了。。。。。
网友评论