From c6dac7c413a92d401c583499f2892e58b083047e Mon Sep 17 00:00:00 2001 From: Ashkrit Date: Sun, 28 Jun 2015 18:24:43 +0800 Subject: [PATCH] Create TargetSum.java --- target_sum/solutions/TargetSum.java | 39 +++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 target_sum/solutions/TargetSum.java diff --git a/target_sum/solutions/TargetSum.java b/target_sum/solutions/TargetSum.java new file mode 100644 index 0000000..e3ece8f --- /dev/null +++ b/target_sum/solutions/TargetSum.java @@ -0,0 +1,39 @@ +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +public class TargetSum { + + public boolean hasPair(int[] values, int expectedSum) { + Arrays.sort(values); + int left = 0; + int right = values.length - 1; + + for (; left < right; ) { + int actualSum = values[left] + values[right]; + if (actualSum > expectedSum) { + right--; + } else if (actualSum < expectedSum) { + left++; + } else { + return true; + } + } + return false; + } + + public boolean hasPairUsingSet(int[] values, int expectedSum) { + + Set seenValues = new HashSet<>(); + for (int value : values) { + int diff = expectedSum - value; + if (!seenValues.contains(diff)) { + seenValues.add(value); + } else { + //Found it is diffvalue & currvalue that wil make up sum + return true; + } + } + return false; + } +}