数组算法之【合并两个有序数组】

目录

LeetCode-88题


LeetCode-88题

给定两个非递减排序的数组num1和num2,并给出两者的元素个数分别为m和n,合并两个数组,使合并后仍然按非递减排序

java 复制代码
public class Solution {
    /**
     * 这里使用的是双指针的解法
     */
    public void merge(int[] nums1, int m, int[] nums2, int n) {
        // check
        if (n <= 0 && m <= 0)
            return;
        if (m <= 0) {
            System.arraycopy(nums2, 0, nums1, 0, n);
            return;
        }
        if (n <= 0)
            return;

        int[] newArr = new int[m + n];
        // 定义两个指针
        int p1 = 0;
        int p2 = 0;
        int i = 0;

        // 将指针指向小的元素放入结果集数组中,并移动对应指针
        while (p1 < m && p2 < n)
            newArr[i++] = nums1[p1] < nums2[p2] ? nums1[p1++] : nums2[p2++];

        // 将剩余元素放入结果集数组
        while (p1 < m)
            newArr[i++] = nums1[p1++];
        while (p2 < n)
            newArr[i++] = nums2[p2++];

        // 应题目要求放入num1中
        System.arraycopy(newArr, 0, nums1, 0, newArr.length);
    }
}
相关推荐
Meteor_cyx2 分钟前
Day12 二叉树遍历
算法
加藤不太惠11 分钟前
十大排序其六
算法·排序算法
数智顾问11 分钟前
Flink ProcessFunction 与低层级 Join 实战手册:多流广告计费精确去重
java·spring boot·spring
前端小刘哥17 分钟前
视频推拉流平台EasyDSS技术特点及多元应用场景剖析
算法
Brianna Home19 分钟前
从零到一:用Godot打造2D游戏《丛林探险》
算法·游戏·性能优化·游戏引擎·bug·godot·动画
小欣加油21 分钟前
leetcode 143 重排链表
数据结构·c++·算法·leetcode·链表
一头生产的驴23 分钟前
java整合itext pdf实现固定模版pdf导出
java·python·pdf
魔都吴所谓25 分钟前
【python】快速实现pdf批量去除指定位置水印
java·python·pdf
Camel卡蒙26 分钟前
数据结构——字典树Trie(介绍、Java实现)
java·数据结构
kida_yuan27 分钟前
【Java】基于 Tabula 的 PDF 合并单元格内容提取
java·数据分析