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