网站建设视频,大学学校网站建设方案,中学网站asp模板,做网站名词大众点评网的校招题还真有特点#xff0c;分四部分#xff0c;第一部分是行测的数字规律类题目#xff0c;第二部分是行测的图形规律题#xff0c;第三部分是C、Java的基础选择题#xff0c;第四部分是四个编程题。
题目都有时间限制#xff0c;第一二部分皆是普通的行测…大众点评网的校招题还真有特点分四部分第一部分是行测的数字规律类题目第二部分是行测的图形规律题第三部分是C、Java的基础选择题第四部分是四个编程题。
题目都有时间限制第一二部分皆是普通的行测题第三四部分回归到编程题。总的感觉是行测题开始比较简单后面比较难程序类题目考了java和C,我是不会java的所以就半猜半写了。下面把我记下来的一些题写下来以飨读者。
1.C 在32位系统下有如下的结构定义
struct
{
short x;
int y;
}A;
struct
{
short x;
long y;
char z;
}B;
则coutsizeof(A)sizeof(B)的执行结果是()
A. 5 12 B. 6 8 C. 8 12 D. 3 7
解析
上述问题主要考了结构体的字节对齐问题Ashort 2字节int 4字节对齐后所以sizeof(A)8,B short 2字节long 4字节char 1字节对齐后sizeof(B)12字节。因此选择C
2.有N个未排序的数组成的数组和一个数sum我们希望找到两个数他们的和最接近sum.问时间复杂度为
A.n B. nlog(n) C.n^2 D.n^2long(n)
解析 #include iostream
#include cmath
#include vector
using namespace std;
struct node
{int x;//代表元素int num;//代笔元素的个数
};
void FindTwoNums(int a[], int n, int sum)//找出最接近sum的两个数
{int left, right, error;int lowa[0], higha[0];for (int i 1; i n; i){if (lowa[i]){low a[i];}if (higha[i]){high a[i];}}vectornode data(high - low 1);for (auto it:data){it.num 0;it.x 0; }for (int k 0; k n;k){data[a[k] - low].num;data[a[k] - low].x a[k];}int i 0;int j high - low;left data[i].x;right data[j].x;error abs(left right - sum);while (ij){while (ijdata[j].num0){j--;}while (ij data[i].num0){i;}if (data[i].xdata[j].xsum){cout 两个数已找到他们分别是 data[i].x data[j].x endl;return;}else{if (abs(data[i].xdata[j].x-sum)error){left data[i].x;right data[j].x;error abs(left right - sum);}if (data[i].x data[j].xsum){data[j].num--;}else{data[i].num--;} }}cout 两个数已找到他们分别是 left right endl;}int main()
{int a[] { 2, 5, 6, 6,8, 10 };FindTwoNums(a, 5, 9);return 0;
}选A