0% found this document useful (0 votes)
71 views2 pages

Java TwoSum Algorithm Implementation

This document contains the code for a Java program that finds the indices of two numbers in an array that sum to a target number. It defines three methods - test(), one(), and two() - to solve the two-sum problem using different approaches. test() uses nested for loops to brute force the solution. one() uses a HashMap to track previously encountered numbers for an optimized solution. two() also uses nested for loops for a brute force approach.

Uploaded by

dd
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
71 views2 pages

Java TwoSum Algorithm Implementation

This document contains the code for a Java program that finds the indices of two numbers in an array that sum to a target number. It defines three methods - test(), one(), and two() - to solve the two-sum problem using different approaches. test() uses nested for loops to brute force the solution. one() uses a HashMap to track previously encountered numbers for an optimized solution. two() also uses nested for loops for a brute force approach.

Uploaded by

dd
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

File - C:\Users\daria\OneDrive\Programming\GitHub\Java\JavaPractice\src\TwoSum.

java
1 import java.util.HashMap;
2 import java.util.Map;
3
4 public class TwoSum {
5     /**
6     * Given an array and an expected sum, you are required to find
7      * the index of the two numbers in the array whose sum adds up
 to the number.
8      */
9
10
11     public static void main(String[] args) {
12
13         int[] numbers = new int[] {2,3,7,4,8};
14         int target = 6; // expected: 0 & 3
15
16         int[] answer = test(numbers,target);
17
18         System.out.println(answer[0]+" "+answer[1]);
19
20
21
22     }
23
24
25     public static int[] test(int[] numbers, int target){
26         for(int i=0; i<numbers.length; i++){
27             for(int j=i+1; j<numbers.length; j++){
28                 int difference = target‐numbers[i];
29                 if (numbers[j]==difference){
30                     return new int[] {i,j};
31                 }
32             }
33         }
34         throw new IllegalArgumentException("There are no matches"
);
35     }
36
37
38
39
40
41
42
43
44
45
Page 1 of 2
File - C:\Users\daria\OneDrive\Programming\GitHub\Java\JavaPractice\src\TwoSum.java
46
47
48
49
50     public static int[] one(int[] numbers, int target) {
51         // call : int[] result = one(numbers, target);
52         // print: System.out.println(result[0]+" "+result[1]);
53
54         //keeps track of whats already been encountered
55         Map<Integer, Integer> visitedNumbers = new HashMap<>();
56
57         for(int i=0; i<numbers.length; i++){
58
59             int difference = target‐numbers[i];
60
61             if(visitedNumbers.containsKey(difference)){
62                 return new int[] {i, visitedNumbers.get(
difference)};
63             }
64             visitedNumbers.put(numbers[i],i);
65         }
66         return new int[] {‐1,‐1};
67     }
68
69     public static int[] two(int[] numbers, int target) {
70         // call : int[] result = two(numbers, target);
71         // print: System.out.println(result[0]+" "+result[1]);
72
73         // this is the brute force method
74
75         for(int i=0; i<numbers.length; i++){
76             for (int j=i+1; i<numbers.length; j++){
77                 int difference = target‐numbers[i];
78                 if (numbers[j] == difference){
79                     return new int[] {i,j};
80                 }
81             }
82         }
83
84         throw new IllegalArgumentException("No match found.");
85     }
86
87 }
88

Page 2 of 2

You might also like