@TOC
# 一、合并两个有序的数组  ```java public void merge(int[] nums1, int m, int[] nums2, int n) { int temp[] = new int[m + n]; int index = 0; int i = 0; int j = 0; while (i < m && j < n) { if (nums1[i] <= nums2[j]) temp[index++] = nums1[i++]; else temp[index++] = nums2[j++]; } for (; i < m; ) { temp[index++] = nums1[i++]; } for (; j < n; ) { temp[index++] = nums2[j++]; } //再把数组temp中的值赋给nums1 for (int k = 0; k < m + n; k++) { nums1[k] = temp[k]; } } ```
# 二、第一个错误版本  ```java public int firstBadVersion(int n) { int min = 1, max = n; while (min < max) { int mid = min + (max - min) / 2; if (!isBadVersion(mid)){ min = mid + 1; }else{ max = mid; } } return min; } ```