283. Move Zeroes

LeetCode

Approach: (Space Optimal, Operation Sub-Optimal) [Accepted]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// One Pass
class Solution {
public void moveZeroes(int[] nums) {
for(int idx=-1,i=0;i<nums.length;i++){
if(nums[i]!=0){
nums[++idx]=nums[i];
if(i!=idx) nums[i]=0;
}
}
}
}
// Two Pass
/*
class Solution {
public void moveZeroes(int[] nums) {
for(int idx=0,i=0;i<nums.length;i++){
if(nums[i]!=0){
nums[idx++]=nums[i];
}
}
for(int i=idx;i<nums.length;i++){
nums[i]=0;
}
}
}*/

Approach: (Optimal) [Accepted]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
private void swap(int[] nums,int i,int j){
if(i!=j){
int tmp=nums[i];
nums[i]=nums[j];
nums[j]=tmp;
}
}

public void moveZeroes(int[] nums) {
for(int idx=0,i=0;i<nums.length;i++){
if(nums[i]!=0){
swap(nums,idx++,i);
}
}
}
}

0%