Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 365b5b6

Browse files
add 1566
1 parent bb15053 commit 365b5b6

File tree

3 files changed

+79
-0
lines changed

3 files changed

+79
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ _If you like this project, please leave me a star._ ★
88

99
| # | Title | Solutions | Video | Difficulty | Tag
1010
|-----|----------------|---------------|--------|-------------|-------------
11+
|1566|[Detect Pattern of Length M Repeated K or More Times](https://leetcode.com/problems/detect-pattern-of-length-m-repeated-k-or-more-times/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_1566.java) ||Array|Easy|
1112
|1561|[Maximum Number of Coins You Can Get](https://leetcode.com/problems/maximum-number-of-coins-you-can-get/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_1561.java) |[:tv:](https://youtu.be/hPe9Z3TiUrA)|Sort|Medium|
1213
|1560|[Most Visited Sector in a Circular Track](https://leetcode.com/problems/most-visited-sector-in-a-circular-track/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_1560.java) ||Array|Easy|
1314
|1558|[Minimum Numbers of Function Calls to Make Target Array](https://leetcode.com/problems/minimum-numbers-of-function-calls-to-make-target-array/)|[Solution](../master/src/main/java/com/fishercoder/solutions/_1558.java) ||Medium|Greedy|
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package com.fishercoder.solutions;
2+
3+
import java.util.Arrays;
4+
5+
public class _1566 {
6+
public static class Solution1 {
7+
public boolean containsPattern(int[] arr, int m, int k) {
8+
for (int i = 0; i < arr.length - m; i++) {
9+
int[] pattern = Arrays.copyOfRange(arr, i, i + m);
10+
int times = 1;
11+
for (int j = i + m; j < arr.length; j += m) {
12+
int[] candidate = Arrays.copyOfRange(arr, j, j + m);
13+
if (Arrays.equals(pattern, candidate)) {
14+
times++;
15+
if (times == k) {
16+
return true;
17+
}
18+
} else {
19+
break;
20+
}
21+
}
22+
}
23+
return false;
24+
}
25+
}
26+
}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package com.fishercoder;
2+
3+
import com.fishercoder.solutions._1566;
4+
import org.junit.BeforeClass;
5+
import org.junit.Test;
6+
7+
import static org.junit.Assert.assertEquals;
8+
9+
public class _1566Test {
10+
private static _1566.Solution1 solution1;
11+
12+
@BeforeClass
13+
public static void setup() {
14+
solution1 = new _1566.Solution1();
15+
}
16+
17+
18+
@Test
19+
public void test1() {
20+
assertEquals(true, solution1.containsPattern(new int[]{1, 2, 4, 4, 4, 4}, 1, 3));
21+
}
22+
23+
@Test
24+
public void test2() {
25+
assertEquals(true, solution1.containsPattern(new int[]{1, 2, 1, 2, 1, 1, 1, 3}, 2, 2));
26+
}
27+
28+
@Test
29+
public void test3() {
30+
assertEquals(false, solution1.containsPattern(new int[]{1, 2, 1, 2, 1, 3}, 2, 3));
31+
}
32+
33+
@Test
34+
public void test4() {
35+
assertEquals(false, solution1.containsPattern(new int[]{1, 2, 3, 1, 2}, 2, 2));
36+
}
37+
38+
@Test
39+
public void test5() {
40+
assertEquals(true, solution1.containsPattern(new int[]{1, 2, 4, 4, 4, 4}, 1, 3));
41+
}
42+
43+
@Test
44+
public void test6() {
45+
assertEquals(false, solution1.containsPattern(new int[]{2, 2, 2, 2}, 2, 3));
46+
}
47+
48+
@Test
49+
public void test7() {
50+
assertEquals(false, solution1.containsPattern(new int[]{2, 2, 1, 2, 2, 1, 1, 1, 2, 1}, 2, 2));
51+
}
52+
}

0 commit comments

Comments
 (0)