级别简单,用了额外的空间,不知道这个可不可以改进,最后到时ac了。另外感觉做leetcode上面的题目要有试错的准备,比如数组A和数组B之间有没有重复的数据,题面上没有给出,事实上也是不必考虑的。
public class Solution { public void merge(int A[], int m, int B[], int n) { int res[] = new int[m + n]; int pm = 0; int pn = 0; int i = 0; for (; i < m + n; i++) { if (pm == m) { if (pn == n) { break; } else { res[i] = B[pn]; pn++; } } else if (pn == n) { if (pm == m) { break; } else { res[i] = A[pm]; pm++; } } else { res[i] = (A[pm] > B[pn] ? B[pn] : A[pm]); if (A[pm] > B[pn]) { pn++; } else { pm++; } } } for (int j = 0; j < m + n; j++) { A[j] = res[j]; } } }
浙公网安备 33010602011771号