
前言
哈喽,大家好,我是一條。
糊塗算法,難得糊塗
Question
283. 移動零
難度:簡單
給定一個數組 nums,編寫一個函數将所有 0 移動到數組的末尾,同時保持非零元素的相對順序。
示例:
輸入: [0,1,0,3,12]
輸出: [1,3,12,0,0]
說明:
必須在原數組上操作,不能拷貝額外的數組。
盡量減少操作次數。
Solution
類似之前的依然采用
有序數組合并
法
雙指針
- 定義兩個指針,一個指向零,一個指向非零。
- 指向非零的指針先移動
- 如果目前元素不等于零,和零指針交換值,并且零指針前進一
同樣的
27.移除元素,大家可以練習一下
Code
所有代碼已同步至 github 歡迎
leetcode
star
/**
* @author yitiaoIT
*/
class Solution {
public void moveZeroes(int[] nums) {
int notZero=0;
int zero=0;
while(notZero<nums.length){
if (nums[notZero]!=0){
int tmp;
tmp=nums[notZero];
nums[notZero]=nums[zero];
nums[zero]=tmp;
zero++;
}
notZero++;
}
}
}
Result
複雜度分析
- 時間複雜度:O(N)
![]()
【leetcode刷題】12.移動零——Java版
🌈尋寶
⭐今天是堅持刷題更文的第12/100天
⭐各位的點贊、關注、收藏、評論、訂閱就是一條創作的最大動力
⭐更多算法題歡迎關注專欄《leetcode》
為了回饋各位粉絲,禮尚往來,給大家準備了一條多年積累下來的優質資源,包括 學習視訊、面試資料、珍藏電子書等
怎麼領取請大家自己找,尋寶遊戲現在開始。
找不到可以評論留言,一條就會注意到你。
如果還不行,請私信我。