LeetCode 283 [Move Zeroes]

原題

給一個數(shù)組 nums 寫一個函數(shù)將 0 移動到數(shù)組的最后面,非零元素保持原數(shù)組的順序

樣例
給出 nums = [0, 1, 0, 3, 12], 調(diào)用函數(shù)之后, nums = [1, 3, 12, 0, 0].

解題思路

  • 第一個方法是記錄一個指針指向0,每次swap的時候更新指向零的指針
  • 第二個方法是兩個指針,一個指針指向零,一個指針指向非零

完整代碼

# method 1
class Solution(object):
    def moveZeroes(self, nums):
        """
        :type nums: List[int]
        :rtype: void Do not return anything, modify nums in-place instead.
        """
        pos = 0  # position of "0" starts at
        for i in xrange(len(nums)):
            if nums[i] != 0:
                nums[i], nums[pos] = nums[pos], nums[i]
                pos += 1

# method 2
class Solution(object):
    def moveZeroes(self, nums):
        """
        :type nums: List[int]
        :rtype: void Do not return anything, modify nums in-place instead.
        """
        if not nums:
            return None
        
        Zero, NonZero = 0, 0
        while NonZero < len(nums):
            if nums[NonZero] == 0:
                NonZero += 1
                continue
            else:
                print nums[Zero], nums[NonZero]
                nums[Zero], nums[NonZero] = nums[NonZero], nums[Zero]

            Zero += 1
            NonZero += 1
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 背景 一年多以前我在知乎上答了有關LeetCode的問題, 分享了一些自己做題目的經(jīng)驗。 張土汪:刷leetcod...
    土汪閱讀 12,899評論 0 33
  • Question 把數(shù)組所有的值為0的元素移到末尾 Given an array nums, write a fu...
    Sinexs閱讀 1,081評論 0 1
  • 別人都叫你怪物 只是因為你 愛上了同性 別人都說你有病 想要拖出你的靈魂 用力鞭打 別人燒毀了你的彩虹 那是你與你...
    巫師的毒湯閱讀 267評論 1 4
  • 在給變量命名時,如果想用兩個或者多個單詞組成一個名稱,通常的做法是用下劃線將單詞分開,或者從第二個單詞開始每一個單...
    Kevin_0417閱讀 154評論 0 0
  • 我是個喜歡看書的人,但不同的是,我看的很多書都是國外的書。哪怕是學習中國的儒家文化、中國歷史,也有很多書是看英文版...
    瘋狂的石頭哥閱讀 2,470評論 39 73

友情鏈接更多精彩內(nèi)容