2022-09-13-百度笔试-80
21号约了9月24号一面
105 min
1、8、9、10、11、12、14
30选择 * 2' 38min
哪个不是抽样方法 A
A. 跳跃抽样、B. 渐进抽样 C. 分层抽样 D. 简单随机抽样ABCD哪个方向的特征值最大?
“aaab” Next数组是 D(1231)?
A1123
B0123
C1211
D1231python 哪个错 A?
A. 定义对象的私有变量时如果与公有变量相同,那也算是新的私有变量
B. 公有变量在 __init__ 方法中声明,每个对象都有
C. 私有变量在创建后声明,只有当前对象有此变量
D. None表示...文字有局部一致性,这是文本检测的难点 ( )
对
查看已安装了与ssh相关的所有软件包的命令:
A. rpm -qa | grep ssh
B. rpm -qa ssh
C. rpm -qa
D. rpm -q ssh6A
10位电话忘了一位,随机打,超过3次才打对的概率是 0.7
不属于基于回归的文本检测方法的是哪个 D
EAST CTPN TextBox MSRH(k)=k513 链地址法,长16,存储 1、14、27、79、68、55、27、6、84、7、10、23、24 顺序忘了,做不出来了
平均查找次数 2.75、1.5、1.75、2.5 没算出来多元线性回归分析,which are true ?
A. F检验时F值越大随机误差的影响越大
B. F检验表明线性关系显著,则至少有一个自变量与因变量线性关系显著
C. F值越大,因变量与自变量线性关系越显著
D. F值越大,相关系数值越小
BC?
TCP流量控制机制 C
控制访问链表、端口限制、滑动窗口、策略S=(D,R), a,b,c,d,e 的 顺序栈关系集合(这是第一题。。。) 可能为 (?)
A. {(a,b),(b,c),(c,d),(d,e),(e,a)}
B. {(a,b),(b,c),(c,,d)}
C. {(e,b),(b,c),(c,a),(a,d)}
D. {(a,b),(c,d),(e,a),(b,c)}
- 搜集数据,map reduce任务包括
数据导入、统一化、压缩、备份
abcd
多层感知机 MLP 10个输入神经元,5个隐藏神经元,1个输出神经元,输入隐藏层与隐藏输出层的权重矩阵分别为
A 1*5,5*10
B 10*5,5*1
C 5*1,10*5
D 5*10,1*5B
在类A的成员函数里可以通过 A::b来访问类的静态成员 ( )
对
2编程 * 20' 100% 40min
1. 40min
// 输入三个整数n, m, t,输入n个数表示第一个数组,m个数表示第二个数组
// 从两个数组的第一个数开始连续地分别拿 k1 和 k2 个数,使得这些数的和小于等于 t
// 求 max(k1+k2)
// 输入
// 5 3 15
// 1 3 2 9 1
// 4 6 1
// 输出
// 5
// 注:1+3 + 4+6+1 = 15<=15 拿到5个数
// 1 ≤ n, m ≤ 30000, 1 ≤ t, ai, bi ≤ 1e9
// 20' 100% 40min
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int n, m;
unsigned long long int t, a, b, r;
cin >> n >> m >> t;
vector<unsigned long long> sa(n + 1, 0), sb(m + 1, 0);
for (int i = 1; i <= n; i++)
{
cin >> sa[i];
sa[i] += sa[i - 1];
}
for (int i = 1; i <= m; i++)
{
cin >> sb[i];
sb[i] += sb[i - 1];
}
// sb[m]+=t;
int maxq = 0;
for (int i = 0; i <= n; i++)
{
if (sa[i] >= t)
{
if (sa[i] == t && maxq < i)
maxq = i;
break;
}
r = t - sa[i];
// 18、55%
// if(sb[m]<=r){
// maxq=max(maxq,i+m);
// }else{
// // upper要用algorithm!!! lower_bound 不需要
// int bi = upper_bound(sb.begin(),sb.end(),r)-sb.begin();
// maxq=max(maxq,i+bi);
// }
// cout<<"i= "<<i<<", "<<it-sb.begin()<<", r= "<<r<<", sa[i]="<<sa[i]<<"\n";
int li = 0, ri = m;
while (li < ri)
{
int mid = (li + ri) / 2;
// cout<<"mid= "<<mid<<", sb[mid]= "<<sb[mid]<<", li= "<<li<<", ri= "<<ri<<"\n";
if (sb[mid] < r)
{
li = mid;
// cout<<"sb[mid+1]= "<<sb[mid+1]<<", mid+1="<<mid+1<<"\n";
if (mid < ri && sb[mid + 1] < r)
li++;
else if (sb[mid + 1] == r)
{
li++;
break;
}
else if (sb[mid + 1] > r)
break;
// cout<<"li= "<<li<<", sb[li]= "<<sb[li]<<"\n";
}
else if (sb[mid] == r)
{
li = mid;
break;
}
else
{
ri = mid - 1;
}
}
maxq = max(maxq, i + li);
// // cout<<"i= "<<i<<", "<<li<<", r= "<<r<<", sa[i]="<<sa[i]<<"\n";
}
cout << maxq;
return 0;
}2. 27min 100% 20'
// 给数组排m次序
// 输入一 n 个数组成的数组,进行了m次操作
// 每次操作由 a b 两个数定义
// a==1 表示把数组的前 b 个数从小到大排序
// a==2 表示把数组的前 b 个数从大到小排序。
// 输出m次操作后的数组
// 1≤n,m≤2x1e5
// n个整数属于 [-1e9,1e9]范围
// 1≤a≤2,1≤b≤n
// 输出描述
//
// 输入
// 4 2 (n、m)
// 1 2 4 3 (n个数)
// 2 3 (第一次操作,得到 4 2 1 3)
// 1 2 (第二次操作)
// 输出
// 2 4 1 3
// 20' 27min 100%
#include <iostream>
#include <vector>
#include <algorithm>
#include <stack>
using namespace std;
void f(vector<int> &a, const vector<vector<int>> &o, const vector<int> &maxO, int i)
{
if (maxO[i] != i)
{
f(a, o, maxO, maxO[i]); // maxO[i] 表示 i 前面最近的其 b 比 i 处的 b 要大的位置的下标,由单调栈求出来
}
if (o[i][0] == 1)
sort(a.begin(), a.begin() + o[i][1]);
else
sort(a.begin(), a.begin() + o[i][1], greater<int>());
return;
}
int main()
{
int n, m;
cin >> n >> m;
vector<int> a(n);
vector<vector<int>> o(m, vector<int>(2, 0));
for (int i = 0; i < n; i++)
cin >> a[i];
for (int i = 0; i < m; i++)
cin >> o[i][0] >> o[i][1];
vector<int> maxO(m, 0); // 表示 i 前面最近的其 b 比 i 处的 b 要大的位置的下标,如果没有,则是本身 i
stack<int> st;
st.push(0);
for (int i = 1; i < m; i++)
{ // the only bug: it is 'm' not 'n' !!!
while (st.empty() == false && o[st.top()][1] < o[i][1])
st.pop();
if (st.empty())
maxO[i] = i;
else
maxO[i] = st.top();
st.push(i);
}
f(a, o, maxO, m - 1);
for (auto &i : a)
cout << i << " ";
return 0;
}#百度笔试##23秋招##23届##百度##23届秋招笔面经#