力扣-88. 合并两个有序数组

news/2024/7/9 4:48:39

文章目录

  • 题目
  • 介绍
    • 1.使用qsort函数
    • 2.使用寻找数组中的最大纸

题目

	力扣链接:https://leetcode.cn/problems/merge-sorted-array/description/

介绍

	使用了两种解题思路,下面将会对2种方法进行介绍。

1.使用qsort函数

	将nums2数组中的元素通过memcpy函数拷贝到nums1函数中,然后通过qsort函数对nums1数组中的元素进行升序排列即可。
int cmp(const void *testA, const void *testB)
{
	int* a = (int*)testA;/*强制转换类型*/
	int* b = (int*)testB;
	return *a - *b;/*如果降序排列那就是*b - *a*/
}

void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n)
{
    memcpy((char *)(nums1 + m), nums2, n * sizeof(int));

    qsort(nums1, m + n, sizeof(int), cmp);

    return;
}

2.使用寻找数组中的最大纸

	两个数组从后往前对比数组中数字,将大的数字存入到nums1的数组后方,然后依次查找存放。
	注意:因为是将数组数据存入到nums1中,所以会存在nums1数组中的数据查找完毕时,nums2的数组还有剩余元素,此时要将nums2中的剩余数据存入到nums1中。
void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n)
{
    int end1 = 0, end2 = 0, end = 0;

    end1 = m - 1;
    end2 = n - 1;
    end = m + n - 1;

    while((end1 >= 0) && (end2 >= 0))
    {
        if(nums1[end1] > nums2[end2])
        {
            nums1[end] = nums1[end1];
            end--;
            end1--;
        }
        else
        {
            nums1[end] = nums2[end2];
            end--;
            end2--;
        }
    }
    /*nums2还剩余数据*/
    while(end2 >= 0)
    {
        nums1[end] = nums2[end2];
        end--;
        end2--;
    }
    return;
}

http://lihuaxi.xjx100.cn/news/1729062.html

相关文章

红队专题-从零开始VC++C/S远程控制软件RAT-MFC-远控介绍及界面编写

红队专题 招募六边形战士队员[1]远控介绍及界面编写1.远程控制软件演示及教程简要说明主程序可执行程序 服务端生成器主机上线服务端程序 和 服务文件管理CMD进程服务自启动主程序主对话框操作菜单列表框配置信息 多线程操作非模式对话框 2.环境:3.界面编程新建项目…

数据结构与算法之LRU: 实现 LRU 缓存算法功能 (Javascript版)

关于LRU缓存 LRU - Lease Recently Used 最近使用 如果内存优先,只缓存最近使用的,删除 ‘沉睡’ 数据 核心 api: get set 分析 使用哈希表来实现, O(1)必须是有序的,常用放在前面,沉睡放在后面, 即:有序&#xff0…

【音视频】音视频开发与学习

音视屏开发与学习 时间:2023年8月12日10:09:29 文章目录 音视屏开发与学习1.资料 1.资料 1.资料下载: 这是最新的课程视频教程,如有星球过期的朋友,可以在这个群公告或者私聊我拿资料,这个资料会一直发给大家的&#x…

IO流框架,缓冲流

一.缓冲流有什么优点 Java中的缓冲流(Buffered Stream)具有以下优势: 提高效率:缓冲流通过在内存中缓存一部分数据,减少了直接从内存到磁盘或从磁盘到内存的频繁IO操作,从而提高了读写效率。缓冲区大小调整…

软考系列(系统架构师)- 2010年系统架构师软考案例分析考点

试题一 软件系统架构选择 【问题1】(7分) 在实际的软件项目开发中,采用恰当的架构风格是项目成功的保证。请用200字以内的文字说明什么是软件架构风格,并对主程序-子程序和管道-过滤器这两种架构风格的特点进行描述。 软件架构风…

从工厂到社会:探索如何应用设计模式工厂模式

文章目录 🌟 将设计模式工厂模式运用到社会当中🍊 工厂模式在社会中的应用🎉 工厂🎉 餐厅🎉 运输 🍊 工厂模式的优势🎉 代码简洁🎉 扩展性强🎉 便于维护和管理 &#x1f…

mysql如何查询数据出现的次数

在mysql中,可以利用select语句配合group by和count查询数据出现的次数,count能够返回检索数据的数目,语法为“select 列名,count(*) as count from 表名 group by 列名”。 count函数是用来统计表中或数组中记录的一个函数,count…

回归算法|长短期记忆网络LSTM及其优化实现

本期文章将介绍LSTM的原理及其优化实现 序列数据有一个特点,即“没有曾经的过去则不存在当前的现状”,这类数据以时间为纽带,将无数个历史事件串联,构成了当前状态,这种时间构筑起来的事件前后依赖关系称其为时间依赖&…