
public class _088MergeSortedArray {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        if (m == 0) {
        	for (int i = 0; i < n; i++) nums1[i] = nums2[i];
        	return;
        } else if (n == 0) return;
        int index = 0;
        int count = 0;
        for (int i = 0; i < m + n; i++) {
        	while (index < n && nums2[index] <= nums1[i]) {
        		index++;
        		count++;
        	}
        	if (count != 0) {
        		for (int j = m + n - 1; j >= i + count; j--) nums1[j] = nums1[j - count];
        		for (int j = index - count; j < index; j++) nums1[i++] = nums2[j];
            	count = 0;
        	}
        	if (i == m + index) {
        		for (int j = i; j < m + n; j++) nums1[j] = nums2[index++];
        		return;
        	}
        }
    }
}

@@ -106,687 +106,198 @@
     
-if
+while
  (m 
-== 0) %7B%0A        %09for (int i = 0; i %3C n; i++) nums1%5Bi%5D = nums2%5Bi%5D;%0A        %09return;%0A        %7D else if (n == 0) return;%0A        int index = 0;%0A        int count = 0;%0A        for (int i = 0; i %3C m + n; i++) %7B%0A        %09while (index %3C n && nums2%5Bindex%5D %3C= nums1%5Bi%5D) %7B%0A        %09%09index++;%0A        %09%09count++;%0A        %09%7D%0A        %09if (count != 0) %7B%0A        %09%09for (int j = m + n - 1; j %3E= i + count; j--) nums1%5Bj%5D = nums1%5Bj - count%5D;%0A        %09%09for (int j = index - count; j %3C index; j++) nums1%5Bi++%5D = nums2%5Bj%5D;%0A            %09count = 0;%0A        %09%7D%0A        %09if (i == m + index) %7B%0A        %09%09for (int j = i; j %3C m + n; j++)
+!= 0 %7C%7C n != 0) nums1%5Bm + n - 1%5D%0A        %09%09= (m != 0 ? nums1%5Bm - 1%5D : Integer.MIN_VALUE)%0A        %09%09%3E (n != 0 ? nums2%5Bn - 1%5D : Integer.MIN_VALUE)%0A        %09%09?
  nums1%5B
-j%5D =
+--m%5D :
  nums2%5B
-index++%5D;%0A        %09%09return;%0A        %09%7D%0A        %7D
+--n%5D;
 %0A   

Revise 88