深信服C++笔试

之前看深信服往年笔试只有编程,结果他搞偷袭,来了一堆选填!
一、选择题
1.c++容器array,deque我只记得有这两个
相关知识:

vector 向量容器
二维数组指针、二维向量
pair 对
list 双向列表
map 表
unordered_map 哈希表
set 集合
unordered_set 哈希集合
string 字符串
stack 栈
queue 队列
deque 双端队列
priority_queue 优先级队列

2.sleep函数的作用
Sleep括号里的时间,在windows下是已毫秒为单位,而Linux是以秒为单位
Sleep(0) 的意义是放弃当前线程执行的时间片,把自身放到等待队列之中
Sleep(3000);//暂停3秒 S要大写

3.线性结构有哪些

4.二叉排序树
5.执行态与就绪态的转换
执行态可以转为阻塞态

6.char数组
7.宏定义
8.正则表达式(a|b)*c+[^0-9]
*:重复零次或更多次
[^0-9]不匹配数字
a或b有几个

9.表达式为真。int a=6869,int b==6976,然后一堆判断的
10.&的运用
二、填空
1.网络字节序特指?
大端序
2.(unsigned short int)(-1234)
short int型转化为unsigned short int型,也是原码->反码(除符号位取反)->补码(反码加1)

3.中序
4.int a 最低有效位起算第三个字节的数值
5.数学题
6.后缀表达式
7.static 局部变量未初始化,然后++问输出值。。
默认为0
8.(a=w>x&&b=y>z)之后a与b的值
9.sizeof内存对齐?
10.fun(&ptr)之类的

#include<iostream>
using namespace std;
int fun(int* ptr,int b) {
	*ptr=*ptr+2;
	b++;
	return *ptr+b;
}
int main() {
	int ptr = 20;
	int b = 20;
	int a = fun(&ptr,b);
	cout << a << endl;
	cout << ptr << endl;
	cout << b << endl;
}//模拟深信服C++笔试一道题

三、编程
1.k轮胜者
vector erase不行吗?后面手动实现了一下
要用迭代器

    array.erase(array.begin() + 1);
	vector<int>::iterator itor= array.begin() + 1;
	array.erase(itor);
	for (vector<int>::iterator itor1 = array.begin(); itor1 != array.end(); itor1++)
	{
		cout << *itor1 << " ";
	}

好吧,有点记错了,上面是实现删除的两套逻辑。
2.最长连续排序数目
随机快排加单指针遍历过90
dp能过100

int main() {
	int n;
	cin >> n;
	vector<long long>a;
	int x;
	int re = 1;
	int left = 1;
	vector<long long>dp(n + 1, 0);
	a.push_back(0);//占位,从此1为第一个数
	for (int i = 1; i <= n; i++) {
		cin >> x;
		dp[i] = dp[i - 1] + x;//前n项和数组
		a.push_back(x);
		long long minn = x;
		long long maxx = x;
		for (int j = i - 1; j >= left; j--) {
			long long sum = dp[i] - dp[j - 1];//差分,求j到i的和
			minn = min(minn, a[j]);
			maxx = max(maxx, a[j]);
			if (sum == (long long)(minn + maxx) * (i - j + 1) / 2 && (maxx - minn) == (i - j)) {
					re = max(re, i - j + 1);
				}
			}
	}
	cout << re << endl;
}

想了想,这方法不能适用于有重复数字,有重复就有特例,md。
3.区间交集数目
贪心10min秒了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值