classSolution{publicvoidmerge(int[] nums1,int m,int[] nums2,int n){int[] nums1Elements =newint[m];// real element of nums1// Get the nums1 elementsfor(int i =0; i < m;++i){
nums1Elements[i]= nums1[i];}int nums1ElementsIndex =0;int nums1Index =0;int nums2Index =0;while(nums1Index < nums1.length){// When nums1 exhausted but nums2 hasn'tif(nums1ElementsIndex >= m && nums2Index < n){
nums1[nums1Index]= nums2[nums2Index];++nums2Index;}elseif(nums2Index >= n && nums1ElementsIndex < m){// When nums2 exhausted but nums2 hasn't
nums1[nums1Index]= nums1Elements[nums1ElementsIndex];++nums1ElementsIndex;}elseif(nums1Elements[nums1ElementsIndex]> nums2[nums2Index]){// Current nums1 element is larger than nums2 element
nums1[nums1Index]= nums2[nums2Index];++nums2Index;}elseif(nums1Elements[nums1ElementsIndex]< nums2[nums2Index]){// Current nums2 element is larger than nums2 element
nums1[nums1Index]= nums1Elements[nums1ElementsIndex];++nums1ElementsIndex;}else{// Equal
nums1[nums1Index]= nums1Elements[nums1ElementsIndex];++nums1ElementsIndex;}++nums1Index;}return;}}