Black_hat123's blog

By Black_hat123, history, 10 months ago, ,

Hello, can any one please tell how to solve This problem

• +18

 » 10 months ago, # | ← Rev. 4 →   +8 Well, if n was <= 20 we could've simply ran through every subset of the the array, but n <= 40. Observe that 40 is still pretty close to 20.So what should we do? SolutionWe are going to use the Meet in the Middle algorithm (also the name of the task :)) to solve this problem. That means that we generate all sums for all subsets of the first half and the second half of the array separately. That way time complexity is O (2^(n/2)*n)Now that we have the sums for both halves we want to find in how many ways we can pair two from different halves so that we get x.We can do that easily by sorting the sum arrays of both halves and use the two pointers method.