美文网首页Leetcode
Leetcode.88.Merge Sorted Array

Leetcode.88.Merge Sorted Array

作者: Jimmy木 | 来源:发表于2019-08-13 15:23 被阅读0次

    题目

    合并两个排序数组, 合并后还是有序

    Input: [1,2,3,0,0,0], [2,5,6]
    Output: [1,2,2,3,5,6]
    

    思路

    从后向前找出最大的数填充都最后.

    void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
        while(m >= 0 && n >= 0) {
          if (n == 0){
              nums1[m+n-1] = nums1[m-1];
              m--;
          } else if (m == 0) {
              nums1[m+n-1] = nums2[n-1];
              n--;
          }else {
              if (nums2[n-1] > nums1[m-1]) {
                  nums1[m+n-1] = nums2[n-1];
                  n--;
              } else {
                  nums1[m+n-1] = nums1[m-1];
                  m--;
              }
          }
      }
    }
    

    总结

    考虑边界信息, 考虑m,n为0的情况

    相关文章

      网友评论

        本文标题:Leetcode.88.Merge Sorted Array

        本文链接:https://www.haomeiwen.com/subject/qzqbjctx.html