NC22 合并两个有序的数组(四种语言+视频讲解)

合并两个有序的数组

https://www.nowcoder.com/practice/89865d4375634fc484f3a24b7fe65665?tpId=117&&tqId=34943&rp=1&ru=/ta/job-code-high&qru=/ta/job-code-high/question-ranking

- 1、题目描述:
图片说明
- 2、题目链接:
https://www.nowcoder.com/practice/89865d4375634fc484f3a24b7fe65665?tpId=117&&tqId=34943&rp=1&ru=/ta/job-code-high&qru=/ta/job-code-high/question-ranking
-3、 设计思想:
图片说明
详细操作流程看下图:
图片说明
-4、视频讲解链接B站视频讲解

-5、代码:
c++版本:

class Solution {
public:
    void merge(int A[], int m, int B[], int n) {
        //因为题目明确说了A数组足够大,所以直接在A数组操作
        int i = m - 1;
        int j = n - 1;
        int index = m + n - 1;//AB合并后最后一个元素所在位置
        while(i >= 0 && j>= 0)//AB合并,谁大就先放谁
            A[index --] = A[i] > B[j] ? A[i --] : B[j --];
        while(j >= 0)//如果B没有遍历完,那么之间丢在A数组里面
            A[index--] = B[j --];
    }
};

Java版本:

public class Solution {
    public void merge(int A[], int m, int B[], int n) {
         //因为题目明确说了A数组足够大,所以直接在A数组操作
        int i = m - 1;
        int j = n - 1;
        int index = m + n - 1;//AB合并后最后一个元素所在位置
        while(i >= 0 && j >= 0)//AB合并,谁大就先放谁
            A[index --] = A[i] > B[j] ? A[i --] : B[j --];
        while(j >= 0)//如果B没有遍历完,那么之间丢在A数组里面
            A[index --] = B[j --];

    }
}

Python版本:

#
# 
# @param A int整型一维数组 
# @param B int整型一维数组 
# @return void
#
class Solution:
    def merge(self , A, m, B, n):
        # write code here
        #因为题目明确说了A数组足够大,所以直接在A数组操作
        i = m - 1
        j = n - 1
        index = m + n - 1#AB合并后最后一个元素所在位置
        while i>= 0 and j >= 0:#AB合并,谁大就先放谁
            if A[i] > B[j]:
                A[index] = A[i]
                index-=1
                i-=1
            else:
                A[index] = B[j]
                index-=1
                j-=1
        while j>= 0:
            A[index] = B[j]
            index -=1
            j -= 1

牛客题霸 文章被收录于专栏

本专栏主要是牛客题霸习题的讲解,有详细的考点分类,大家可以可以看看呦!!!

全部评论
其实没说A是升序的?
点赞 回复 分享
发布于 2021-07-05 14:11
太简洁了
点赞 回复 分享
发布于 2021-06-04 15:02
报个数组越界异常
点赞 回复 分享
发布于 2021-03-30 17:39

相关推荐

09-13 17:43
已编辑
北京化工大学 硬件开发
易才一飞:感觉项目写细节一些吧,掌握技能和校内经历感觉占比太大,而且这是找嵌软还是硬件呢,似乎大家都说要有针对的写相关技术才好吧
点赞 评论 收藏
分享
头像
09-01 09:00
已编辑
四川旅游学院 运营
牛客55195891...:主要是专业不好,别的没毛病
牛客解忧铺
点赞 评论 收藏
分享
评论
41
9
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务