算法笔记: 力扣#283 移动零

问题描述


解法


分析

Python 实现

1
2
3
4
5
6
7
8
9
10
11
12
13
class :
def moveZeroes(self, nums):
"""
:type nums: List[int]
:rtype: void Do not return anything, modify nums in-place instead.
"""
point = 0
for i in range(len(nums)):
if nums[point]:
point += 1
elif nums[i]:
nums[point], nums[i] = nums[i], 0
point += 1

Java 实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class {
public void moveZeroes(int[] nums) {
int point = 0;
for(int i = 0; i < nums.length; i++){
if(nums[point] != 0)
point ++;
else if(nums[i] != 0){
nums[point] = nums[i];
nums[i] = 0;
point ++;
}
}
}
}

时间复杂度

O(N).

空间复杂度

O(1).

链接


283. Move Zeroes
283. 移动零
(English version) Algorithm Notes: Leetcode#283 Move Zeroes