From 8df7b8b64851ca0cb177826230692baac0b129c8 Mon Sep 17 00:00:00 2001 From: WillShen Date: Sat, 24 Oct 2020 15:02:56 +0800 Subject: [PATCH 1/3] add _66.java solution2 --- .../java/com/fishercoder/solutions/_66.java | 17 +++++++++++++++++ src/test/java/com/fishercoder/_66Test.java | 17 +++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/src/main/java/com/fishercoder/solutions/_66.java b/src/main/java/com/fishercoder/solutions/_66.java index 48a3f43884..9c6d586ed5 100644 --- a/src/main/java/com/fishercoder/solutions/_66.java +++ b/src/main/java/com/fishercoder/solutions/_66.java @@ -20,4 +20,21 @@ public int[] plusOne(int[] digits) { return newNumber; } } + + public static class Solution2 { + public int[] plusOne(int[] digits) { + int len = digits.length; + for (int i = len - 1; i >= 0; i--) { + if (digits[i] == 9) { + digits[i] = 0; + } else { + digits[i]++; + return digits; + } + } + int[] newNumber = new int[len + 1]; + newNumber[0] = 1; + return newNumber; + } + } } diff --git a/src/test/java/com/fishercoder/_66Test.java b/src/test/java/com/fishercoder/_66Test.java index d8e45a2d57..0e1eea3d03 100644 --- a/src/test/java/com/fishercoder/_66Test.java +++ b/src/test/java/com/fishercoder/_66Test.java @@ -1,5 +1,6 @@ package com.fishercoder; +import com.fishercoder.solutions._1005; import com.fishercoder.solutions._66; import org.junit.BeforeClass; import org.junit.Test; @@ -8,28 +9,44 @@ public class _66Test { private static _66.Solution1 solution1; + private static _66.Solution2 solution2; private static int[] digits; @BeforeClass public static void setup() { solution1 = new _66.Solution1(); + solution2 = new _66.Solution2(); } @Test public void test1() { digits = new int[]{9, 9, 9, 9}; assertArrayEquals(new int[]{1, 0, 0, 0, 0}, solution1.plusOne(digits)); + digits = new int[]{9, 9, 9, 9}; + assertArrayEquals(new int[]{1, 0, 0, 0, 0}, solution2.plusOne(digits)); } @Test public void test2() { digits = new int[]{8, 9, 9, 9}; assertArrayEquals(new int[]{9, 0, 0, 0}, solution1.plusOne(digits)); + digits = new int[]{8, 9, 9, 9}; + assertArrayEquals(new int[]{9, 0, 0, 0}, solution2.plusOne(digits)); } @Test public void test3() { digits = new int[]{2, 4, 9, 3, 9}; assertArrayEquals(new int[]{2, 4, 9, 4, 0}, solution1.plusOne(digits)); + digits = new int[]{2, 4, 9, 3, 9}; + assertArrayEquals(new int[]{2, 4, 9, 4, 0}, solution2.plusOne(digits)); + } + + @Test + public void test4() { + digits = new int[]{2, 4, 9, 3, 9}; + assertArrayEquals(new int[]{2, 4, 9, 4, 0}, solution1.plusOne(digits)); + digits = new int[]{2, 4, 9, 3, 9}; + assertArrayEquals(new int[]{2, 4, 9, 4, 0}, solution2.plusOne(digits)); } } From bafd73f4ffb6975f9248007422be69338c6338ba Mon Sep 17 00:00:00 2001 From: WillShen Date: Sun, 25 Oct 2020 13:48:26 +0800 Subject: [PATCH 2/3] write new tests for solution2 --- src/test/java/com/fishercoder/_66Test.java | 25 +++++++++++++--------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/src/test/java/com/fishercoder/_66Test.java b/src/test/java/com/fishercoder/_66Test.java index 0e1eea3d03..66e0d85e84 100644 --- a/src/test/java/com/fishercoder/_66Test.java +++ b/src/test/java/com/fishercoder/_66Test.java @@ -22,31 +22,36 @@ public static void setup() { public void test1() { digits = new int[]{9, 9, 9, 9}; assertArrayEquals(new int[]{1, 0, 0, 0, 0}, solution1.plusOne(digits)); - digits = new int[]{9, 9, 9, 9}; - assertArrayEquals(new int[]{1, 0, 0, 0, 0}, solution2.plusOne(digits)); } @Test public void test2() { digits = new int[]{8, 9, 9, 9}; assertArrayEquals(new int[]{9, 0, 0, 0}, solution1.plusOne(digits)); - digits = new int[]{8, 9, 9, 9}; - assertArrayEquals(new int[]{9, 0, 0, 0}, solution2.plusOne(digits)); } @Test public void test3() { digits = new int[]{2, 4, 9, 3, 9}; assertArrayEquals(new int[]{2, 4, 9, 4, 0}, solution1.plusOne(digits)); - digits = new int[]{2, 4, 9, 3, 9}; - assertArrayEquals(new int[]{2, 4, 9, 4, 0}, solution2.plusOne(digits)); } @Test public void test4() { - digits = new int[]{2, 4, 9, 3, 9}; - assertArrayEquals(new int[]{2, 4, 9, 4, 0}, solution1.plusOne(digits)); - digits = new int[]{2, 4, 9, 3, 9}; - assertArrayEquals(new int[]{2, 4, 9, 4, 0}, solution2.plusOne(digits)); + digits = new int[]{9, 9, 9, 9, 9}; + assertArrayEquals(new int[]{1, 0, 0, 0, 0, 0}, solution2.plusOne(digits)); } + + @Test + public void test5() { + digits = new int[]{8, 9, 9, 9, 9}; + assertArrayEquals(new int[]{9, 0, 0, 0, 0}, solution2.plusOne(digits)); + } + + @Test + public void test6() { + digits = new int[]{2, 4, 9, 4, 9}; + assertArrayEquals(new int[]{2, 4, 9, 5, 0}, solution2.plusOne(digits)); + } + } From 8c646ad1ff9ec91ff388dd8638b95bd4b811914b Mon Sep 17 00:00:00 2001 From: WillShen Date: Sun, 25 Oct 2020 14:31:06 +0800 Subject: [PATCH 3/3] remove import --- src/test/java/com/fishercoder/_66Test.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/test/java/com/fishercoder/_66Test.java b/src/test/java/com/fishercoder/_66Test.java index 66e0d85e84..4c605f7056 100644 --- a/src/test/java/com/fishercoder/_66Test.java +++ b/src/test/java/com/fishercoder/_66Test.java @@ -1,11 +1,11 @@ package com.fishercoder; -import com.fishercoder.solutions._1005; -import com.fishercoder.solutions._66; +import static org.junit.Assert.assertArrayEquals; + import org.junit.BeforeClass; import org.junit.Test; -import static org.junit.Assert.assertArrayEquals; +import com.fishercoder.solutions._66; public class _66Test { private static _66.Solution1 solution1;