#include"iostream"
#include"stdio.h"
using namespace std; int* ArrayMerge(int *a,int aLen,int *b,int bLen)
{
int aIndex=aLen-,bIndex=bLen-,newIndex=aLen+bLen-; while(aIndex>=&&bIndex>=)
{
if(a[aIndex]>b[bIndex])
{
a[newIndex--]=a[aIndex--];
}
else
{
a[newIndex--]=b[bIndex--];
}
}
while(aIndex>=)
{
a[newIndex--]=a[aIndex--];
}
while(bIndex>=)
{
a[newIndex--]=b[bIndex--];
}
return a;
} void Test(char *testName,int *a,int aLen,int *b,int bLen,int *res,int aMaxLen)
{
if(testName!=nullptr)
cout<<"the "<<testName<<" begin:";
if(aLen+bLen>aMaxLen)
{
cout<<"out of range!"<<endl;
return;
}
if(a==nullptr || b==nullptr)
{
cout<<"the one of two arrays is NULL!"<<endl;
return;
}
if(aLen< || bLen<)
{
cout<<"error input"<<endl;
return;
}
int *getRes=ArrayMerge(a,aLen,b,bLen);
int i;
for(i=;i<aLen+bLen;i++)
{
// cout<<getRes[i]<<" ";
if(res[i]!=getRes[i]) break;
}
if(i<aLen+bLen)
cout<<"failed!"<<endl;
else
cout<<"passed!"<<endl;
} //a数组全排在b数组前面
void Test1()
{
int a[]={,,};//一定要指定a数组的大小
int b[]={,,};
int res[]={,,,,,};
Test("Test1",a,,b,,res,);
}
//a数组和b数组混合
void Test2()
{
int a[]={,,};
int b[]={,,};
int res[]={,,,,,};
Test("Test2",a,,b,,res,);
}
//a数组为空
void Test3()
{
int a[]={};
int b[]={,,};
int res[]={,,};
Test("Test3",a,,b,,res,);
}
//b数组为空
void Test4()
{
int b[]={};
int a[]={,,};
int res[]={,,};
Test("Test4",a,,b,,res,);
} //a、b数组为空
void Test5()
{
int a[]={};
int b[]={};
int res[]={};
Test("Test5",a,,b,,res,);
}
//a、b数组为空
void Test6()
{
int *a=nullptr;
int b[]={};
int res[]={};
Test("Test6",a,,b,,res,);
}
int main()
{
Test1();
Test2();
Test3();
Test4();
Test5();
Test6();
return ;
}

剑指offer5.1——O(n)的复杂度合并两个有序数组的更多相关文章

  1. 剑指offer——python【第16题】合并两个有序链表

    题目描述 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1-& ...

  2. 《剑指offer》第二十五题(合并两个排序的链表)

    // 面试题25:合并两个排序的链表 // 题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按 // 照递增排序的.例如输入图3.11中的链表1和链表2,则合并之后的升序链表如链 ...

  3. 【剑指offer】以o(1)复杂度删除啊链表的节点,C++实现(链表)

    0.简介       本文是牛客网<剑指offer>刷题笔记. 1.题目       在O(1)时间内删除链表节点. 2.思路         前提条件:删除的节点在链表上:边界条件:链表 ...

  4. 【剑指Offer面试编程题】题目1349:数字在排序数组中出现的次数--九度OJ

    题目描述: 统计一个数字在排序数组中出现的次数. 输入: 每个测试案例包括两行: 第一行有1个整数n,表示数组的大小.1<=n <= 10^6. 第二行有n个整数,表示数组元素,每个元素均 ...

  5. 【剑指Offer面试编程题】题目1505:两个链表的第一个公共结点--九度OJ

    题目描述: 输入两个链表,找出它们的第一个公共结点. 输入: 输入可能包含多个测试样例. 对于每个测试案例,输入的第一行为两个整数m和n(1<=m,n<=1000):代表将要输入的两个链表 ...

  6. 剑指offer--5.用两个栈实现队列

    题目:用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 思路: # 栈A用来作入队列# 栈B用来出队列,当栈B为空时,栈A全部出栈到栈B,栈B再出栈(即出队列) v ...

  7. 剑指offer5

    题干:用两个栈实现一个队列,完成队列的push和pop操作,队列中的元素是int型 思路:首先我初始化两个栈,一个栈往里面添加数据,如果这个栈中不为空就弹出数据压入到第二个栈中,弹出第二个栈中的数据 ...

  8. 剑指offer5 从尾到头打印链表

    错误代码: class Solution { public: vector<int> printListFromTailToHead(ListNode* head){ vector< ...

  9. 剑指offer--5.变态跳台阶

    WA了一次,错误数据4,输出8,怎么真么熟悉呢?改个return过了,OMG ------------------------------------------------------------- ...

随机推荐

  1. LightOJ 1282 Leading and Trailing (数学)

    题意:求 n^k 的前三位和后三位. 析:后三位,很简单就是快速幂,然后取模1000,注意要补0不全的话,对于前三位,先取10的对数,然后整数部分就是10000....,不用要,只要小数部分就好,然后 ...

  2. 策略与计费控制(PCC)流程与信令流程

    该文为3GPP TS23.203-be0 条款6-7译文 策略与计费控制(PCC)流程[^4] IP-CAN 会话有三种显著的场景: 无网关控制会话需求,不会出现网关控制建立 需要网关控制会话支持:B ...

  3. 关于Html5中的单选与多选

    1.下拉列表样式: <select> <option value ="volvo">Volvo</option> <option valu ...

  4. CentOS7-扩容挂载磁盘

    1.1查看新磁盘,可以看到/dev/sdb是新的未挂载的磁盘: [root@localhost ~]# fdisk -l 1.2硬盘分区 ,进入fdisk模式 进入fdisk模式 [root@loca ...

  5. JS 换行写法

    var populatePullUpHtml = function (id) { var html = '<div id="' + id + '" class="' ...

  6. vitamio MediaController总是显示在底部的问题

    前面一直用腾讯的x5 tas来播放视频,但是体验效果不好,不能设置播放页,无法获取用户对视频的学习情况,百度了下,发现好多人在使用vitamio,最新版本是5.0的,下载可能要花费点时间,官网上竟然没 ...

  7. 以太坊系列之七: p2p模块的dial--以太坊源码学习

    dial.go阅读手记 dial.go是负责和peer建立连接关系的地方,主要是实现 type dialer interface { /* peers已经有的结点 */ newTasks(runnin ...

  8. Web标准及网站的可用性、可访问性

    学习前端的过程中到处充斥着Web标准.可用性.可访问性这些词,那么到底它们指的是什么呢? 一.什么是Web标准 简单的说,Web标准就是我们在学习前端中接触最多的HTML.CSS.JavaScript ...

  9. 协程《二》greenlet模块

    一 greenlet模块 如果我们在单个线程内有20个任务,要想实现在多个任务之间切换,使用yield生成器的方式过于麻烦(需要先得到初始化一次的生成器,然后再调用send...非常麻烦),而使用gr ...

  10. 关于windows上 web 和 ftp 站点的创建及使用

    关于windows上 web 和 ftp 站点的创建及使用 引言 其实这是我网络基础课上的一次作业,觉得挺实用的,遂写成博客分享,也算是对这次作业的一次总结. 实验目的 通过此实验掌握WEB和FTP站 ...