Problem: 283. 移动零
题目描述
思路
1.定义一个int类型变量index初始化为0;
2.遍历nums当当前的元素nums[i]不为0时使nums[i]赋值给nums[index];
3.从index开始将nums中置对应位置的元素设为0;
复杂度
时间复杂度:
O ( n ) O(n) O(n);其中 n n n为nums的大小
空间复杂度:
O ( 1 ) O(1) O(1)
Code
public class Solution {
/**
* Move the zero element to the end of a given array
*
* @param nums Given array
*/
public void moveZeroes(int[] nums) {
if (nums == null || nums.length == 0) {
return;
}
int index = 0;
for (int i = 0; i < nums.length; ++i) {
if (nums[i] != 0) {
nums[index] = nums[i];
index++;
}
}
for (int i = index; i < nums.length; ++i) {
nums[i] = 0;
}
}