Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- import java.util.stream.*;
- public class MyClass{
- public static void main(String[] args){
- var arr = new ArrayList<Integer>(List.of(1, 1, 2, 4, 4, 5));
- System.out.println(method1(arr));
- System.out.println(method2(arr));
- System.out.println(method3(arr));
- }
- // Fast. O(n) time complexity
- private static List<Integer> method1(List<Integer> arr) {
- return arr.stream().distinct().collect(Collectors.toList());
- }
- // Fast. O(n) time complexity
- private static List<Integer> method2(List<Integer> arr) {
- var taken = new HashSet<Integer>();
- var result = new ArrayList<Integer>();
- for (int i = 0; i < arr.size(); i++) {
- var value = arr.get(i);
- if (!taken.contains(value)) {
- taken.add(value);
- result.add(value);
- }
- }
- return result;
- }
- // Slow. O(n^2) time complexity
- private static List<Integer> method3(List<Integer> arr) {
- var result = new ArrayList<Integer>();
- for (int i = 0; i < arr.size(); i++) {
- var value = arr.get(i);
- var exists = false;
- for (int j = 0; j < result.size(); j++) {
- if (Objects.equals(result.get(j), value)) {
- exists = true;
- break;
- }
- }
- if (!exists) result.add(value);
- }
- return result;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement