给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2

给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。

请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。

注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。

示例 1:
输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3
输出:[1,2,2,3,5,6]
解释:需要合并 [1,2,3] 和 [2,5,6] 。
合并结果是 [1,2,2,3,5,6] ,其中斜体加粗标注的为 nums1 中的元素。

示例 2:
输入:nums1 = [1], m = 1, nums2 = [], n = 0
输出:[1]
解释:需要合并 [1] 和 [] 。
合并结果是 [1] 。

示例 3:
输入:nums1 = [0], m = 0, nums2 = [1], n = 1
输出:[1]
解释:需要合并的数组是 [] 和 [1] 。
合并结果是 [1] 。
注意,因为 m = 0 ,所以 nums1 中没有元素。nums1 中仅存的 0 仅仅是为了确保合并结果可以顺利存放到 nums1 中。

题目来源链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xnumcr/

总结:
1.注意可能两个数组的其中一个有部分没有,在两个比较时没有复制完
2.两个数组中出现相同元素的时候
3.不知道为什么Arrays.Copyof()不可以使用

参考代码:

package com.leetcode.Shuzu;

/**
 * @author chenzi
 */
public class Merge {
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        int[] result = new int[m+n];
        int i = 0, j = 0, count = 0;
        while (i < m && j < n){
            if (nums1[i] <= nums2[j]){
                result[count++] = nums1[i];
                i++;
            }else{
                result[count++] = nums2[j];
                j++;
            }
        }
        while (i < m){
            result[count++] = nums1[i++];
        }
        while (j < n){
            result[count++] = nums2[j++];
        }
        for (int h = 0; h < m+n; h++){
            nums1[h] = result[h];
        }
    }
}

2021年9月29日
学习:

开放和封闭是万物运行规律的一种体现,是游说活动的一种形态。人们必须首先慎重地考察这睦变化,事物的吉凶,人们的命运都系于此。口是心灵的门面和窗户,心灵是精神 的主宰。意志、情欲、思想和智谋都要由这个门窗出入。因此,用开放和封闭来的把守这个关口,以控制出入。所谓“捭之”,就是开放、发言、公开;所谓“阖 之”,就是封闭、缄默、隐匿。陰陽两方相谐调,开放与封闭才以有节度,才能善始善终。所以说长生、安乐、富贵、尊荣、显名、嗜好、财货、得意、情欲等,属 于“陽”的一类事物,叫做“开始”。而死亡、忧患、贫贱、羞辱、毁弃、损伤、失意、灾害、刑戳、诛罚等,属于“陰”的一类事物,叫作“终止”。凡是那些遵 循“陽道”的一派,都可以称为“新生派”,他们以谈论“善”来开始游说;凡是那此遵循“陰道”的一派,都可以称为“没落派”,他们以谈论“恶”来终止施展 计谋。
关于开放和封闭的规律都要从有陽两方面来试验。因此,给从陽的方面来游说的人以崇高的待遇,而给从陰的方面来游说的人以卑下的待遇。用卑下的来求索微小, 以崇高来求索博大。由此看来,没有什么不能出去,没有什么不能进来,没有什么办不成的。用这个道理,可以说服人,可以说服家,可以说服国,可以说服天下。 要做小事的时候没有“内”的界限;要做大事的时候没有“外”有疆界。所有的损害和补益,离去和接近,背叛和归附等等行为,都是运用陰、陽的变化来实行的。 陽的方面,运动前进;陰的方面,静止、隐藏。陽的方面,活动显出;陰的方面,随行潜入。陽的方面,环行于绺和开端;陰的方面,到了极点显就反归为陽。凡是 凭陽气行动的人,道德就与之相生;凡是凭陰气而静止的人,开拓热就与之相成。用陽气来追求陰气,要靠道德来包容;用陽气来结纳陽气,要用外来约束。陰陽之 气相追求,是依据并启和关闭的原则,这是天地陰陽之道理,又是说服人的方法,是各种事物的先异,是天地的门户。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值