DulcetAirman icon

find pair in array

DulcetAirman | PRO | 11/25/18 08:06:22 AM UTC | 0 ⭐ | 888 👁️ | Never ⏰ | []
Java |

1.14 KB

|

None

|

0 👍

/

0 👎

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

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎