Skip to content

Commit 9080cd4

Browse files
committed
Solution for: array partition I
1 parent e8b75f8 commit 9080cd4

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

src/leetcode/ArrayPartitionI.java

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package leetcode;
2+
3+
public class ArrayPartitionI {
4+
5+
public static void main(String[] args) {
6+
// TODO Auto-generated method stub
7+
8+
}
9+
public int arrayPairSum(int[] nums) {
10+
mergeSort(nums,0, nums.length-1);
11+
int sum=0;
12+
for(int i=0; i< nums.length; i+=2){
13+
sum= sum+ nums[i];
14+
}
15+
return sum;
16+
}
17+
18+
public void mergeSort(int[] nums, int l, int p){
19+
if(l==p){
20+
return;
21+
}
22+
int mid = (l+p)/2;
23+
mergeSort(nums, l, mid);
24+
mergeSort(nums, mid+1, p);
25+
merge(nums, l, mid+1, p);
26+
}
27+
28+
public void merge(int[] nums, int left, int mid, int rightEnd){
29+
int right = mid;
30+
int k=0;
31+
int n= rightEnd-left+1;
32+
int lower =left;
33+
int[] temp= new int[n];
34+
while(left<=mid-1 && right<= rightEnd){
35+
if(nums[left]<=nums[right]){
36+
temp[k++]= nums[left++];
37+
}else{
38+
temp[k++]= nums[right++];
39+
}
40+
}
41+
while(left<=mid-1){
42+
temp[k++]= nums[left++];
43+
}
44+
while(right<=rightEnd){
45+
temp[k++]= nums[right++];
46+
}
47+
48+
for(int i=0; i<n;i++){
49+
nums[lower+i] = temp[i];
50+
}
51+
52+
}
53+
54+
}

0 commit comments

Comments
 (0)