Skip to content

Commit d119cdf

Browse files
refactor 575
1 parent 895ca1d commit d119cdf

File tree

2 files changed

+14
-25
lines changed

2 files changed

+14
-25
lines changed
Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,16 @@
11
package com.fishercoder.solutions;
22

3-
import java.util.Arrays;
3+
import java.util.HashSet;
4+
import java.util.Set;
45

56
public class _575 {
67
public static class Solution1 {
7-
public int distributeCandies(int[] candies) {
8-
Arrays.sort(candies);
9-
int sisCount = 0;
10-
for (int i = 0; i < candies.length; i++) {
11-
int val = candies[i];
12-
sisCount++;
13-
if (sisCount >= candies.length / 2) {
14-
return candies.length / 2;
15-
}
16-
while (i < candies.length && candies[i] == val) {
17-
i++;
18-
}
19-
i--;
8+
public int distributeCandies(int[] candyType) {
9+
Set<Integer> map = new HashSet<>();
10+
for (int candy : candyType) {
11+
map.add(candy);
2012
}
21-
return sisCount;
13+
return Math.min(map.size(), candyType.length / 2);
2214
}
2315
}
2416
}

src/test/java/com/fishercoder/_575Test.java

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,11 @@
66

77
import static org.junit.Assert.assertEquals;
88

9-
/**
10-
* Created by fishercoder on 5/6/17.
11-
*/
129
public class _575Test {
1310
private static _575.Solution1 solution1;
1411
private static int expected;
1512
private static int actual;
16-
private static int[] candies;
13+
private static int[] candyType;
1714

1815
@BeforeClass
1916
public static void setup() {
@@ -22,25 +19,25 @@ public static void setup() {
2219

2320
@Test
2421
public void test1() {
25-
candies = new int[]{1, 1, 2, 3};
22+
candyType = new int[]{1, 1, 2, 3};
2623
expected = 2;
27-
actual = solution1.distributeCandies(candies);
24+
actual = solution1.distributeCandies(candyType);
2825
assertEquals(expected, actual);
2926
}
3027

3128
@Test
3229
public void test2() {
33-
candies = new int[]{1, 1, 2, 2, 3, 3};
30+
candyType = new int[]{1, 1, 2, 2, 3, 3};
3431
expected = 3;
35-
actual = solution1.distributeCandies(candies);
32+
actual = solution1.distributeCandies(candyType);
3633
assertEquals(expected, actual);
3734
}
3835

3936
@Test
4037
public void test3() {
41-
candies = new int[]{1000, 1, 1, 1};
38+
candyType = new int[]{1000, 1, 1, 1};
4239
expected = 2;
43-
actual = solution1.distributeCandies(candies);
40+
actual = solution1.distributeCandies(candyType);
4441
assertEquals(expected, actual);
4542
}
4643
}

0 commit comments

Comments
 (0)