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.
Example: Input: [0,1,0,3,12] Output: [1,3,12,0,0]
Note:
1.You must do this in-place without making a copy of the array.
2.Minimize the total number of operations.
배열이 주어지면 순서 그대로 0만 뒤로 내보내는 문제이다.
class Solution {
public void moveZeroes(int[] nums) {
int temp = 0;
for (int i = 0; i < nums.length; i++) {
for (int j = i+1; j < nums.length; j++) {
if (nums[i] == 0) {
temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
}
}
}
요즘 문제를 풀면서 느끼는 건데 효율성을 고려하면서 알고리즘을 짜는건 정말 어렵다...
ㅠㅠㅠ 항상 왜 나는 이중 for문 밖에 생각이 안날까