diff --git a/src/main/java/problemset/a1437/CheckAllOnes.java b/src/main/java/problemset/a1437/CheckAllOnes.java new file mode 100644 index 0000000..528951e --- /dev/null +++ b/src/main/java/problemset/a1437/CheckAllOnes.java @@ -0,0 +1,16 @@ +package problemset.a1437; + +public class CheckAllOnes { + public boolean kLengthApart(int[] nums, int k) { + int prev = - (k + 1); + + for (int curr = 0; curr < nums.length; curr++) { + if (nums[curr] == 1) { + if (curr - prev - 1 < k) + return false; + prev = curr; + } + } + return true; + } +} diff --git a/src/test/java/problemset/a1437/CheckAllOnesTest.java b/src/test/java/problemset/a1437/CheckAllOnesTest.java new file mode 100644 index 0000000..8e5c2db --- /dev/null +++ b/src/test/java/problemset/a1437/CheckAllOnesTest.java @@ -0,0 +1,34 @@ +package problemset.a1437; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class CheckAllOnesTest { + + private CheckAllOnes checkAllOnes; + private int[] testcaseOne; + private int[] testcaseTwo; + private int kOne; + private int kTwo; + + @BeforeEach + void setUp() { + checkAllOnes = new CheckAllOnes(); + testcaseOne = new int[]{1,0,0,0,1,0,0,1}; + testcaseTwo = new int[]{1,0,0,1,0,1}; + kOne = 2; + kTwo = 2; + } + + @Test + void test_kLengthApart_testCaseOne() { + assertTrue(checkAllOnes.kLengthApart(testcaseOne, kOne)); + } + + @Test + void test_kLengthApart_testCaseTwo() { + assertFalse(checkAllOnes.kLengthApart(testcaseTwo, kTwo)); + } +} \ No newline at end of file