283. Move Zeroes

2017-07-07  本文已影响0人  byr_hfaltgg

很简单的一道题,基本不用思考,可以说我想了很长时间为什么这么简单。。。。
先上我的代码:

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写很多行比较函数的时候了。。。。。

上一篇下一篇

猜你喜欢

热点阅读