shirforum
BAN USERpublic ArrayList<int[]> mergeIntervalsLists(ArrayList<int[]> a1, ArrayList<int[]> a2) {
List<int[]> merge = new ArrayList();
int i1 = 0;
int i2 = 0;
while (i1 < a1.size() && i2 < a2.size()) {
int interval[] = new int[2];
interval[0] = a1.get(i1)[0] <= a2.get(i2)[0] ? a1.get(i1)[0] : a2.get(i2)[0];
if (a1.get(i1)[1] == a2.get(i2)[1]) {
interval[1] = a1.get(i1)[1];
} else if (a1.get(i1)[1] < a2.get(i2)[1]) {
while (i1 < a1.size() && a1.get(i1)[1] < a2.get(i2)[1]) {
i1++;
};
interval[1] = i1 < a1.size() ? a1.get(i1)[1] : a2.get(i2)[1];
} else {
while (i2 < a2.size() && a2.get(i2)[1] < a1.get(i1)[1]) {
i2++;
};
interval[1] = i2 < a2.size() ? a2.get(i2)[1] : a1.get(i1)[1];
}
i1++;
i2++;
merge.add(interval);
}
while(i1 < a1.size()) {
int interval[] = new int[2];
interval[0] = a1.get(i1)[0];
interval[1] = a1.get(i1++)[1];
merge.add(interval);
}
while(i2 < a2.size()) {
int interval[] = new int[2];
interval[0] = a2.get(i2)[0];
interval[1] = a2.get(i2++)[1];
merge.add(interval);
}
return merge;
}
Tested by:
ArrayList<int[]> a1 = new ArrayList();
ArrayList<int[]> a2 = new ArrayList();
/*a1.add(new int[] {1,2});
a1.add(new int[] {3,9});
a1.add(new int[] {15,19});
a2.add(new int[] {1,2});
a2.add(new int[] {3,7});
a2.add(new int[] {8,12}); */
a1.add(new int[] {1,2});
a1.add(new int[] {3,9});
a1.add(new int[] {15,19});
a2.add(new int[] {1,2});
a2.add(new int[] {3,7});
a2.add(new int[] {8,12});
public void rotate(int[] nums, int k) {
int n = nums.length;
if (n < 2)
return;
k = k % n;
int count = 0;
for(int i = 0; count < n; i++){
int p = i;
int prev =nums[p];
do{
int j = (p + k) % n;
int temp = nums[j];
nums[j] = prev;
prev = temp;
p = j;
count++;
}while( p != i);
}
}
public void merge(int[] nums1, int m, int[] nums2, int n) {
int index2 = nums2.length - 1;
int index1 = nums1.length - nums2.length - 1;
for (int i = nums1.length - 1; i >= 0; i--) {
nums1[i] = (index2 < 0 || (index1 >= 0 && nums1[index1] >= nums2[index2])) ? nums1[index1--]
: nums2[index2--];
}
}
Result:
- shirforum December 23, 20180
1
2
3
4
5
6
7
8
9
153
370
371
407