首页 > 代码库 > 数组面试题

数组面试题

数组面试题

#include<iostream>using namespace std;//数组求和int sum(int *a, int n){	return n == 0 ? 0 : sum(a, n - 1) + a[n - 1];}//递归法数组求和int sum2(int *a, int n){	int s = 0;	for (int i = n - 1; i > 0; i--){		s += a[i];	}	return s;}//求数组的最大最小值void Max_Min(int *a, int n, int &max_value, int &min_value){	max_value = http://www.mamicode.com/a[0];" "<< x2 << endl;}//求两个有序数组的共同元素/*给定两个含有n个元素的有序(非降序)整型数组a和b,求出其共同元素,比如a = 0, 1, 2, 3, 4b = 1, 3, 5, 7, 9输出 1, 3***************************************************************分析:充分利用数组有序的性质,用两个指针i和j分别指向a和b,比较a[i]和b[j],根据比较结果移动指针,则有如下三种情况1. a[i] < b[j],则i增加1,继续比较2. a[i] == b[j],则i和j皆加1,继续比较3. a[i] < b[j],则j加1,继续比较重复以上过程直到i或j到达数组末尾。*/void Find_Commom1(int *a, int *b, int n){	int i = 0, j = 0;	while (i < n && j < n){		if (a[i] < b[j]) i++;		if (a[i] == b[j]){			cout << a[i] << " ";			i++;			j++;		}		if (a[i] > b[j]) j++;	}	cout << endl;}void Find_Commom(int* a, int *b, int n){	int i, j;	for (i = 0; i < n; i++){		for (j = 0; j < n; j++){			if (a[i] == b[j])				cout << a[i] << " ";		}	}	cout << endl;}int main(){	int a[4] = { 2, 4, 6, 8 };	int b[5] = { 1, 5, 7, 9 };	Find_Commom(a, b, 4);	Find_Commom1(a, b, 4);}

  来自:http://www.cnblogs.com/graphics/archive/2010/08/24/1761620.html#

数组面试题