zoukankan      html  css  js  c++  java
  • leetcode刷题笔记八十八题 合并两个有序数组

    leetcode刷题笔记八十八题 合并两个有序数组

    源地址:88. 合并两个有序数组

    问题描述:

    你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。

    说明:

    初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。
    你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。

    示例:

    输入:
    nums1 = [1,2,3,0,0,0], m = 3
    nums2 = [2,5,6], n = 3

    输出: [1,2,2,3,5,6]

    /**
    本题解法较多,这里采用的是暂不移动nums1中的元素,选择自后向前合并数组
    时间复杂度 	O(m+n)
    空间复杂度	O(1)
    */
    object Solution {
        def merge(nums1: Array[Int], m: Int, nums2: Array[Int], n: Int): Unit = {
            var nums1Pos = m-1
            var nums2Pos = n-1
            for(i <- (0 to m+n-1).reverse){
                if (nums1Pos >= 0 && nums2Pos >= 0){
                    if(nums1(nums1Pos) >= nums2(nums2Pos)){
                        nums1(i) = nums1(nums1Pos)
                        nums1Pos -= 1 
                    }  
                    else{
                        nums1(i) = nums2(nums2Pos)
                        nums2Pos -= 1
                    } 
                }
                else if (nums1Pos < 0){
                    nums1(i) = nums2(nums2Pos)
                    nums2Pos -= 1
                }
            }
        }
    }
    
  • 相关阅读:
    keepalived+httpd 高可用
    网卡绑定配置文件
    elk安装
    mysql数据库
    sed
    kvm
    日常巡检
    haproxy
    (6)PY_(study)
    (5)PY_(study)
  • 原文地址:https://www.cnblogs.com/ganshuoos/p/13390321.html
Copyright © 2011-2022 走看看