摘要:雙指針壓縮法復雜度時間空間思路實際上就是將所有的非數向前盡可能的壓縮,最后把沒壓縮的那部分全置就行了。比如,先壓縮成,剩余的為全置為。過程中需要一個指針記錄壓縮到的位置。
Move Zeroes
雙指針壓縮法 復雜度Given an array nums, write a function to move all 0"s to the end of it while maintaining the relative order of the non-zero elements.
For example, given nums = [0, 1, 0, 3, 12], after calling your function, nums should be [1, 3, 12, 0, 0].
時間 O(N) 空間 O(1)
思路實際上就是將所有的非0數向前盡可能的壓縮,最后把沒壓縮的那部分全置0就行了。比如103040,先壓縮成134,剩余的3為全置為0。過程中需要一個指針記錄壓縮到的位置。
代碼public class Solution { public void moveZeroes(int[] nums) { int cnt = 0, pos = 0; // 將非0數字都盡可能向前排 for(int i = 0; i < nums.length; i++){ if(nums[i] != 0){ nums[pos]= nums[i]; pos++; } } // 將剩余的都置0 for(;pos后續 Follow Up Q:如果要把所有的0放在前面而不是后面呢?
A:同樣的解題思路,但是是從后向前遍歷,將非0數字壓縮到后面。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/64557.html
摘要:給定一個數組,編寫一個函數將所有移動到數組的末尾,同時保持非零元素的相對順序。盡量減少操作次數。換個思路,把非數字前移,不去管數字。這樣遍歷完之后,數組索引從到之間的數值即為所求得保持非零元素的相對順序,而之后的數值只需要全部賦值即可。 給定一個數組 nums,編寫一個函數將所有 0 移動到數組的末尾,同時保持非零元素的相對順序。 Given an array nums, write ...
摘要:給定一個數組,編寫一個函數將所有移動到數組的末尾,同時保持非零元素的相對順序。盡量減少操作次數。換個思路,把非數字前移,不去管數字。這樣遍歷完之后,數組索引從到之間的數值即為所求得保持非零元素的相對順序,而之后的數值只需要全部賦值即可。 給定一個數組 nums,編寫一個函數將所有 0 移動到數組的末尾,同時保持非零元素的相對順序。 Given an array nums, write ...
摘要:解法目的就是把一個數組中所有為的數移動到數組的尾部,并保證其他元素相對位置不變。要求是在原數組上修改,不要額外引入其他的數組盡量減少操作次數。在小游戲中,設置了和界面一致的二維數組,數組的每一位記錄了一個數字。 地址:https://leetcode.com/problems/move-zeroes/ 應用場景說明 這個題是很Easy的一道題,它的應用場景是在我嘗試寫小游戲2048時,...
題目詳情 Given an array nums, write a function to move all 0s to the end of it while maintaining the relative order of the non-zero elements.For example, given nums = [0, 1, 0, 3, 12], after calling your ...
摘要:題目鏈接題目分析給定一個整數數組,將值為的元素移動到數組末尾,而不改動其他元素出現的順序。再在去后的元素末尾填充到計算出的數組長度。最終代碼若覺得本文章對你有用,歡迎用愛發電資助。 D68 283. Move Zeroes 題目鏈接 283. Move Zeroes 題目分析 給定一個整數數組,將值為0的元素移動到數組末尾,而不改動其他元素出現的順序。 思路 計算總共有多少個元素。 再...
閱讀 792·2021-09-22 16:01
閱讀 2084·2021-08-20 09:37
閱讀 1693·2019-08-30 15:54
閱讀 1689·2019-08-30 15:44
閱讀 826·2019-08-28 18:23
閱讀 3005·2019-08-26 12:17
閱讀 1005·2019-08-26 11:56
閱讀 1539·2019-08-23 16:20