Two sum problem
This commit is contained in:
parent
2e26a9d667
commit
753f5e4360
2 changed files with 43 additions and 0 deletions
11
silviobraendle/two_sum/BUILD
Normal file
11
silviobraendle/two_sum/BUILD
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
load("@rules_java//java:defs.bzl", "java_binary")
|
||||
|
||||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
java_binary(
|
||||
name = "two_sum",
|
||||
srcs = glob(["*.java"]),
|
||||
main_class = "silviobraendle.two_sum.Main",
|
||||
deps = [
|
||||
],
|
||||
)
|
||||
32
silviobraendle/two_sum/Main.java
Normal file
32
silviobraendle/two_sum/Main.java
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
package silviobraendle.two_sum;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class Main {
|
||||
public static void main(String[] args) {
|
||||
int[] nums = {
|
||||
2, 7, 11, 15
|
||||
};
|
||||
int target = 9;
|
||||
|
||||
int[] indices = twoSum(nums, target);
|
||||
|
||||
System.out.println(indices[0]);
|
||||
System.out.println(indices[1]);
|
||||
}
|
||||
|
||||
public static int[] twoSum(int nums[], int target) {
|
||||
Map<Integer, Integer> foundIndices = new HashMap<>();
|
||||
for (int i = 0; i < nums.length; i++) {
|
||||
int value = nums[i];
|
||||
int complement = target-value;
|
||||
Integer indexOfComplement = foundIndices.get(complement);
|
||||
if (indexOfComplement != null) {
|
||||
return new int[] {indexOfComplement, i};
|
||||
}
|
||||
foundIndices.put(value, i);
|
||||
}
|
||||
throw new Error();
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue