Skip to content

Commit

Permalink
Add aykrieger: First Non-Duplicate
Browse files Browse the repository at this point in the history
  • Loading branch information
aykrieger committed Jun 27, 2022
1 parent f817dfb commit 1586f00
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 0 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,9 @@ HackerRank assigns their problems a difficulty rating (Easy, Medium, Hard, Exper

- K-diff Pairs in an Array (Medium) [Problem](https://leetcode.com/problems/k-diff-pairs-in-an-array/) | [Solution](https://github.com/aykrieger/coding-exercises/blob/master/src/main/java/leetcode/KDiffPairsInAnArray.java)

## aykrieger (1 Problem)

- First Non-Duplicate [Solution](https://github.com/aykrieger/coding-exercises/blob/master/src/main/java/aykrieger/FirstNonDuplicate.java)

## Contributing

Expand Down
7 changes: 7 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,13 @@
<artifactId>commons-lang3</artifactId>
<version>3.7</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>

<properties>
Expand Down
20 changes: 20 additions & 0 deletions src/main/java/aykrieger/FirstNonDuplicate.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package aykrieger;

import java.util.LinkedHashSet;

public class FirstNonDuplicate {

private LinkedHashSet<Integer> linkedSet = new LinkedHashSet<>();

public void add(int number) {
if (!linkedSet.contains(number)) {
linkedSet.add(number);
} else {
linkedSet.remove(number);
}
}

public int firstNonDuplicate() {
return linkedSet.isEmpty() ? -1 : linkedSet.iterator().next();
}
}
27 changes: 27 additions & 0 deletions src/test/java/aykrieger/FirstNonDuplicateTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package aykrieger;

import static org.junit.jupiter.api.Assertions.assertEquals;

import org.junit.jupiter.api.Test;

/**
* Test class for {@link FirstNonDuplicate}
*/
public class FirstNonDuplicateTest {

@Test
public void testFirstNonDuplicate() {
FirstNonDuplicate firstNonDuplicate = new FirstNonDuplicate();
firstNonDuplicate.add(10);
firstNonDuplicate.add(11);
firstNonDuplicate.add(12);
assertEquals(10, firstNonDuplicate.firstNonDuplicate());
firstNonDuplicate.add(10);
assertEquals(11, firstNonDuplicate.firstNonDuplicate());
firstNonDuplicate.add(11);
firstNonDuplicate.add(12);
assertEquals(-1, firstNonDuplicate.firstNonDuplicate());
}


}

0 comments on commit 1586f00

Please sign in to comment.