面试题4—相关题目
2017-06-26 10:11
162 查看
题目:有两个排序数组A1和A2,内存在A1后面有足够的空间容纳A2。实现一个函数,把A2中的数字插入到A1,并且所有的数字是排序的。
代码示例:
#include<iostream>
using namespace std;
/*
**两个有序数组A1和A2,A1后面有足够的内存容纳A2,将A2插入到A1中,使结果有序
*/
bool InsertToA1FromA2(int A1[], int A2[], int n, int m)
{
if (m == 0||(m==0&&n==0))
return false;
if (n == 0)
{
for (int i = 0; i < m; i++)
A1[i] = A2[i];
return true;
}
//
int n1 = n - 1;
int m1 = m - 1;
while (0 <= n1&&m1 >= 0)
{
if (A1[n1] < A2[m1])
{
A1[m1 + n1 + 1] = A2[m1];
m1--;
}
else if (A1[n1] > A2[m1])
{
A1[m1 + n1 + 1] = A1[n1];
n1--;
}
else
{
A1[m1 + n1 + 1] = A1[n1];
A1[m1 + n1] = A1[n1];
m1--;
n1--;
}
}
if (m1 >=0)
{
while (m1 >= 0)
{
A1[m1] = A2[m1];
m1--;
}
}
return true;
}
void main()
{
const int maxsize = 20;
int A1[maxsize] = { 1, 3, 7, 9 };
int n = 4;
int A2[5] = { 4, 7, 9, 70,567 };
int m = 5;
bool flag = InsertToA1FromA2(A1, A2, n, m);
if (flag)
{
for (int i = 0; i < m + n; i++)
{
cout << A1[i] << "\t";
}
cout << endl;
}
}
代码示例:
#include<iostream>
using namespace std;
/*
**两个有序数组A1和A2,A1后面有足够的内存容纳A2,将A2插入到A1中,使结果有序
*/
bool InsertToA1FromA2(int A1[], int A2[], int n, int m)
{
if (m == 0||(m==0&&n==0))
return false;
if (n == 0)
{
for (int i = 0; i < m; i++)
A1[i] = A2[i];
return true;
}
//
int n1 = n - 1;
int m1 = m - 1;
while (0 <= n1&&m1 >= 0)
{
if (A1[n1] < A2[m1])
{
A1[m1 + n1 + 1] = A2[m1];
m1--;
}
else if (A1[n1] > A2[m1])
{
A1[m1 + n1 + 1] = A1[n1];
n1--;
}
else
{
A1[m1 + n1 + 1] = A1[n1];
A1[m1 + n1] = A1[n1];
m1--;
n1--;
}
}
if (m1 >=0)
{
while (m1 >= 0)
{
A1[m1] = A2[m1];
m1--;
}
}
return true;
}
void main()
{
const int maxsize = 20;
int A1[maxsize] = { 1, 3, 7, 9 };
int n = 4;
int A2[5] = { 4, 7, 9, 70,567 };
int m = 5;
bool flag = InsertToA1FromA2(A1, A2, n, m);
if (flag)
{
for (int i = 0; i < m + n; i++)
{
cout << A1[i] << "\t";
}
cout << endl;
}
}
相关文章推荐
- 面试题7—相关题目(两个队列实现栈)
- 面试题28—相关题目
- 【面试题】海量数据处理相关题目
- 剑指offer面试题4:替换空格 相关题目 排序的数组A2中所有数字插入到A1并保持排序
- 面试题42—相关题目(字符串的左旋转)
- 剑指offer编程题Java实现——面试题4后的相关题目
- 面试题30_相关题目(最小的k个数_方法二)
- 面试题39 二叉树相关面试题目
- 面试题35—相关题目
- 面试题35—相关题目1
- 面试题35—相关题目
- 剑指offer面试题java实现之题4之相关题目:两个排序数组合并
- 面试题39—相关题目(判断平衡二叉树)
- 剑指Offer----面试题四之相关题目
- 面试题12—相关题目(任意两个整数相加)
- 面试题28—相关题目(字符所有的组合)
- 面试题28—相关题目
- 面试题41—相关题目(和为s的所有连续正数序列)
- LeetCode: Palindrome 回文相关题目
- 队列和栈相关面试题总结