做网站建设公司crm在线的提升服务/百度seo效果
之前看深信服往年笔试只有编程,结果他搞偷袭,来了一堆选填!
一、选择题
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秒了。