aboutsummaryrefslogtreecommitdiff
path: root/challenge-333/deadmarshal/java/Ch2.java
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2025-08-04 23:38:41 +0100
committerGitHub <noreply@github.com>2025-08-04 23:38:41 +0100
commite7b7e4d53ed43950effa2822f420dbf4eeb726f8 (patch)
tree2831e9f0f0072a3f245532b18466df5ce712c98e /challenge-333/deadmarshal/java/Ch2.java
parent741cefe18001f6fed70297862bfe9535db2bd7c1 (diff)
parentb830fb716a3819d5494d850f4fbec45ac3c49ddf (diff)
downloadperlweeklychallenge-club-e7b7e4d53ed43950effa2822f420dbf4eeb726f8.tar.gz
perlweeklychallenge-club-e7b7e4d53ed43950effa2822f420dbf4eeb726f8.tar.bz2
perlweeklychallenge-club-e7b7e4d53ed43950effa2822f420dbf4eeb726f8.zip
Merge pull request #12461 from deadmarshal/TWC333
TWC333
Diffstat (limited to 'challenge-333/deadmarshal/java/Ch2.java')
-rw-r--r--challenge-333/deadmarshal/java/Ch2.java36
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;
+ }
+ }
+}