Tuesday, June 6, 2017

Array partition



Problem Statement

Given an array of 2n integers, your task is to group these integers into n pairs of integer, say (a1, b1), (a2, b2), ..., (an, bn) which makes sum of min(ai, bi) for all i from 1 to n as large as possible.

Link to Github :Code


Example 1:
Input: [1,4,3,2]

Output: 4
Explanation: n is 2, and the maximum sum of pairs is 4.
Note:
  1. n is a positive integer, which is in the range of [1, 10000].
  2. All the integers in the array will be in the range of [-10000, 10000].

Solution


  • We need to sort the element of the array
  • Iterate through the element of array with increments of 2
  • Keep adding the elements of the array to a variable result
public class ArrayPartition {
 
 public static int  get(int [] nums)
 
 {
  Arrays.sort(nums);
  int results=0;
  for(int i=0;i<nums.length;i+=2)
  {
   results+=nums[i];
  }
  return results;
 }

}

No comments:

Post a Comment