美文网首页
LeetCode之Merge Sorted Array(Kotl

LeetCode之Merge Sorted Array(Kotl

作者: 糕冷羊 | 来源:发表于2021-08-23 17:50 被阅读0次

    问题:



    方法:
    题目重点是nums1的长度正好为m+n,所以可以直接将结果放入nums1中,但是需要从高位开始,因为高位为0不会影响低位的元素,然后遍历比较大小即可,因为nums1与nums2都是有序数组

    package com.eric.leetcode
    
    class MergeSortedArray {
        fun merge(nums1: IntArray, m: Int, nums2: IntArray, n: Int): Unit {
            var i = m - 1
            var j = n - 1
            var k = m + n -1
            while (j >= 0 && i >= 0) {
                if (nums1[i] >= nums2[j]) {
                    nums1[k] = nums1[i]
                    i--
                    k--
                } else {
                    nums1[k] = nums2[j]
                    j--
                    k--
                }
            }
            while (j >= 0)  {
                nums1[k] = nums2[j]
                j--
                k--
            }
        }
    }
    
    fun main() {
        val nums1 = intArrayOf(1, 2, 3, 0, 0, 0)
        val nums2 = intArrayOf(2, 5, 6)
        val m = 3
        val n = 3
        val mergeSortedArray = MergeSortedArray()
        mergeSortedArray.merge(nums1, m, nums2, n)
    }
    

    有问题随时沟通

    具体代码实现可以参考Github

    相关文章

      网友评论

          本文标题:LeetCode之Merge Sorted Array(Kotl

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