title: How to merge two sorted array?
body: <p>Question is ==&gt;
  You are given two integer arrays nums1 and nums2, sorted in non-decreasing order, and two integers m and n, representing the number of elements in nums1 and nums2 respectively.</p>
  <p>Merge nums1 and nums2 into a single array sorted in non-decreasing order.</p>
  <p>The final sorted array should not be returned by the function, but instead be stored inside the array nums1. To accommodate this, nums1 has a length of m + n, where the first m elements denote the elements that should be merged, and the last n elements are set to 0 and should be ignored. nums2 has a length of n.</p>
  <p>What is wrong in  my code???</p>
  <pre><code>    public void merge(int[] nums1, int m, int[] nums2, int n) {
          int k = 0; 
          int l = 0;
          for(int i=0; i&lt;(m+n); i++){
              if(k &gt; (m-1)){
                  nums1[i] = nums2[l];
                  l += 1;
              }
              else if(nums1[k] &lt;= nums2[l]){
                  nums1[i] = nums1[k];
                  k += 1;
              }
              else {
                  nums1[i] = nums2[l];
                  l += 1;
              }
          }
      }
  }
  </code></pre>
  <p>Your input</p>
  <pre><code>[1,2,3,0,0,0]
  3
  [2,5,6]
  3
  </code></pre>
  <p>My output</p>
  <pre><code>[1,2,2,2,5,6]
  </code></pre>
  <p>Expected output</p>
  <pre><code>[1,2,2,3,5,6]
  </code></pre>