diff --git a/src/main/java/hackerRank/week1/LonelyInteger.java b/src/main/java/hackerRank/week1/LonelyInteger.java index ff35e6f..8dc80af 100644 --- a/src/main/java/hackerRank/week1/LonelyInteger.java +++ b/src/main/java/hackerRank/week1/LonelyInteger.java @@ -11,21 +11,19 @@ public class LonelyInteger { public int lonelyInteger(List<Integer> a) { - Set<Integer> integerSet = new HashSet<>(); - - long listSum = 0; - long setSum = 0; - - for (Integer i : a) { - integerSet.add(i); - listSum += i; - } - - for (Integer i : integerSet) { - setSum += i; + Set<Integer> buffer = new HashSet<>(); + int sum = 0; + int sumOfUniqueElements = 0; + + for (int i : a) { + sum += i; + if (!buffer.contains(i)) { + sumOfUniqueElements += i; + buffer.add(i); + } } - return Long.valueOf((2 * setSum) - listSum).intValue(); + return (2 * sumOfUniqueElements) - sum; } diff --git a/src/test/java/hackerRank/week1/LonelyIntegerTest.java b/src/test/java/hackerRank/week1/LonelyIntegerTest.java index 36ca160..deacdcb 100644 --- a/src/test/java/hackerRank/week1/LonelyIntegerTest.java +++ b/src/test/java/hackerRank/week1/LonelyIntegerTest.java @@ -17,6 +17,10 @@ public void test() { Assertions.assertEquals(4, r); + r = lonelyInteger.lonelyInteger(List.of(1, 2, 3, 4, 5, 1, 2, 3, 4)); + + Assertions.assertEquals(5, r); + } }