Given an integer array nums, move all 0's to the end of it while maintaining the relative order of the non-zero elements.
Note that you must do this in-place without making a copy of the array.
정수 배열 nums
가 주어지면 0
이 아닌 요소의 상대적인 순서를 유지하면서 모든 0
을 그 끝으로 이동합니다.
배열을 복사하지 않고 주어진 배열 안에서 이 작업을 수행해야 합니다.
Input: nums = [0,1,0,3,12]
Output: [1,3,12,0,0]
Input: nums = [0]
Output: [0]
Follow up: Could you minimize the total number of operations done?
후속조치 : 전체 움직임의 수를 최소화 할 수 있습니까?
class Solution {
public void moveZeroes(int[] nums) {
int zero = 0;
for (int i = 0; i < nums.length; i++) {
if (nums[i] != 0) {
nums[zero] = nums[i];
zero++;
}
}
for (int i = zero; i < nums.length; i++) {
nums[i] = 0;
}
}
}