. Given an array of 2n integers, your task is to group these integers into n pai
ID: 3749201 • Letter: #
Question
. 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.
Example 1:
Input: [1,4,3,2]
Output: 4
Explanation: n is 2, and the maximum sum of pairs is 4 = min(1, 2) + min(3, 4).
import java.util.Arrays;
public class ArrayPartition1 {
public int arrayPairSum(int[] nums) {
Arrays.sort(nums);
int sum = 0;
for(int i = 0 ; i < nums.length-1; i= i+2){
sum = sum+ Math.min(nums[i],nums[i+1]);
}
return sum;
}
public static void main(String[] args){
int arr[]= {1,4,3,2};
SYstem.out.println(arrayPairSum(nums));
}
}
I have this solution..but not working
Explanation / Answer
Solution:
import java.util.Arrays;
public class ArrayPartition1 {
/*
Solution: First sort the input array, then pair up elements next to each other that way we dont
loose much to Math.min() between pair
*/
public static int arrayPairSum(int[] nums) {
Arrays.sort(nums);
int sum = 0;
for(int i = 0 ; i < nums.length-1; i= i+2){
sum = sum+ Math.min(nums[i],nums[i+1]);
}
return sum;
}
public static void main(String[] args){
int arr[]= {1,4,3,2,6};
System.out.println(arrayPairSum(arr));
}
}
Sample Run:
4
Note: If you have any doubt please do comment below before giving any negative feedback. if you liked the solution then don't forget to hit the thumbs up.
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.