From 753f5e4360bd317a32b645c2c9dddcf31fe721bc Mon Sep 17 00:00:00 2001 From: silviodeveloper1029 Date: Mon, 25 Nov 2024 15:20:35 +0000 Subject: [PATCH] Two sum problem --- silviobraendle/two_sum/BUILD | 11 +++++++++++ silviobraendle/two_sum/Main.java | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 silviobraendle/two_sum/BUILD create mode 100644 silviobraendle/two_sum/Main.java diff --git a/silviobraendle/two_sum/BUILD b/silviobraendle/two_sum/BUILD new file mode 100644 index 0000000..4dcf4a8 --- /dev/null +++ b/silviobraendle/two_sum/BUILD @@ -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 = [ + ], +) diff --git a/silviobraendle/two_sum/Main.java b/silviobraendle/two_sum/Main.java new file mode 100644 index 0000000..40983e6 --- /dev/null +++ b/silviobraendle/two_sum/Main.java @@ -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 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(); + } +} \ No newline at end of file