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;
}
}
Comments
0 B
|👍
/👎