Advertisement
kaysar

Untitled

Apr 21st, 2016
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.20 KB | None | 0 0
  1. function findArrayQuadCombination(arr, S):
  2.    if (arr == null OR S == null):
  3.       return null
  4.    n = length(arr)
  5.    if (n < 4):
  6.       return null
  7.    # hashing implementation language dependent:
  8.    pairHash = new HashTable()
  9.    for i from 0 to n-1
  10.       for j from i+1 to n-1
  11.          if !pairHash.isMapped(arr[i]+arr[j]):
  12.             pairHash.map(arr[i]+arr[j], [])
  13.          pairHash.get(arr[i]+arr[j]).push([i, j])
  14.  
  15.    for pairSum in pairHash.getKeys()
  16.       if pairHash.isMapped(S - pairSum):
  17.          pairsA = pairHash.get(pairSum)
  18.          pairsB = pairHash.get(S - pairsSum)
  19.          combination = find4Uniques(pairsA, pairsB)
  20.          if (combination != null):
  21.             return combination
  22.    return null
  23.  
  24. # Helper function.
  25. # Gets 2 arrays of sub-arrays of 2 numbers
  26. # Gets 4 unique numbers, from 2 sub-arrays of different arrays
  27. function find4Uniques(A, B):
  28.    lenA = length(A)
  29.    lenB = length(B)
  30.    for i from 0 to lenA-1:
  31.       for j from 0 to lenB-1:
  32.          if ( A[i][0] == B[j][0] OR A[i][1] == B[j][1] OR
  33.               A[i][0] == B[j][1] OR A[i][1] == B[j][0] ):
  34.             continue
  35.          else:
  36.             return [A[i][0], A[i][1], B[j][0], B[j][1]]
  37.    return null
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement