Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ch.claude_martin;
- import java.util.Arrays;
- import java.util.TreeSet;
- import java.util.stream.IntStream;
- public class SomeClass {
- public static void main(String[] args) {
- {
- var a = new int[] { 10, 15, 3, 7 };
- var k = 17;
- checkAndOutput(a, k);
- }
- {
- var a = new int[] { -10, 15, 3, 7, -30 };
- var k = -40;
- checkAndOutput(a, k);
- }
- {
- var a = IntStream.range(-100000, 100000).toArray();
- var k = 99999;
- checkAndOutput(a, k);
- }
- {
- var a = IntStream.range(0, 10000000).toArray();
- var k = -1;
- checkAndOutput(a, k);
- }
- }
- static void checkAndOutput(final int[] a, final int k) {
- System.out.format("a = %.100s%n", Arrays.toString(a));
- System.out.format("k = %d%n", k);
- System.out.format("result: %s%n", check(a, k));
- }
- static boolean check(final int[] a, final int k) {
- final var diff = new TreeSet<Integer>();
- for (var i : a) {
- if (diff.contains(i))
- return true;
- diff.add(k - i);
- // note: this ignores that overflow can give false results
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement