diff options
| author | Ali <adeadmarshal@gmail.com> | 2025-08-04 11:20:25 +0330 |
|---|---|---|
| committer | Ali <adeadmarshal@gmail.com> | 2025-08-04 11:20:25 +0330 |
| commit | b830fb716a3819d5494d850f4fbec45ac3c49ddf (patch) | |
| tree | e9f4c893b37f255ad2c4d8b7221852af93485dc8 /challenge-333/deadmarshal/java/Ch2.java | |
| parent | ce2f933a023e15e5dac73508e56a9aec0e87fae6 (diff) | |
| download | perlweeklychallenge-club-b830fb716a3819d5494d850f4fbec45ac3c49ddf.tar.gz perlweeklychallenge-club-b830fb716a3819d5494d850f4fbec45ac3c49ddf.tar.bz2 perlweeklychallenge-club-b830fb716a3819d5494d850f4fbec45ac3c49ddf.zip | |
TWC333
Diffstat (limited to 'challenge-333/deadmarshal/java/Ch2.java')
| -rw-r--r-- | challenge-333/deadmarshal/java/Ch2.java | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/challenge-333/deadmarshal/java/Ch2.java b/challenge-333/deadmarshal/java/Ch2.java new file mode 100644 index 0000000000..baac1c6ac5 --- /dev/null +++ b/challenge-333/deadmarshal/java/Ch2.java @@ -0,0 +1,36 @@ +import java.util.Arrays; + +public class Ch2 { + public static void main(String[] args) { + int[] a1 = new int[]{1, 0, 2, 3, 0, 4, 5, 0}; + int[] a2 = new int[]{1, 2, 3}; + int[] a3 = new int[]{1, 2, 3, 0}; + int[] a4 = new int[]{0, 0, 1, 2}; + int[] a5 = new int[]{1, 2, 0, 3, 4}; + for (var a : new int[][]{a1, a2, a3, a4, a5}) duplicate_zeros(a); + System.out.println(Arrays.toString(a1)); + System.out.println(Arrays.toString(a2)); + System.out.println(Arrays.toString(a3)); + System.out.println(Arrays.toString(a4)); + System.out.println(Arrays.toString(a5)); + } + + private static void duplicate_zeros(int[] arr) { + int n = arr.length, i = -1, k = 0; + while (k < n) { + ++i; + k += arr[i] > 0 ? 1 : 2; + } + int j = n - 1; + if (k == n + 1) { + arr[j--] = 0; + --i; + } + while (j >= 0) { + arr[j] = arr[i]; + if (arr[i] == 0) arr[--j] = arr[i]; + --i; + --j; + } + } +} |
