public class Solution { public void merge(int A[], int m, int B[], int n) { if (n == 0) { return; } if (m == 0) { for (int tmp = 0; tmp < n; tmp++) { A[tmp] = B[tmp]; } } int i = 0 , j = 0 , k = 0; int[] C = new int[m + n]; while(k < m + n){ if(A[i] < B[j]){ C[k] = A[i]; i++; }else{ C[k] = B[j]; j++; } k++; if(i > m- 1){ break; } if(j > n - 1){ break; } } if(i > m- 1){ while(j < n){ C[k] = B[j]; k++; j++; } } if(j > n - 1){ while(i < m){ C[k] = A[i]; i++; k++; } } for(int index = 0 ; index < C.length ; index++){ A[index] = C[index]; //System.out.println(C[index]); } } }
昨晚提交了三次,寫了半個小時做用,剛剛寫了接近10分鐘,而後提交的時候發現遇到昨晚遇到的坑,把開始的判斷加上去就經過了,寫代碼究竟是靠狀態仍是靠RP呢?java