大疆笔试20240818 C++音视频开发
6道单选
6道多选
5道判断
2道编程
编程题(1):有很多个机场,编号1~2^20,一开始所有机场都没有飞机,给你所有 有飞机降落的机场编号 和 有飞机起飞的机场编号 ,每次只降落或起飞一架飞机,求最后时刻还停留1~15架飞机的机场个数。
#include<iostream> using namespace std; int n, m; int num[1 << 20 | 1]; int ans[16]; int main() { cin >> n; while (n--) { int a; cin >> a; num[a]++; } cin >> m; while (m--) { int a; cin >> a; num[a]--; } for (int i = 1; i <= (1 << 20); i++) { if (num[i] > 15)continue; ans[num[i]]++; } for (int i = 1; i <= 15; i++)cout << ans[i] << " "; return 0; }
编程题(2):给你一个只包含0和1的字符串,每次操作能把字符串内所有01变成10,求多少次操作以后字符串内没有01。
#include<iostream> #include<cstring> using namespace std; const int N = 1000010; int ans,cnt; int dp[N],loc[N]; string s; int main() { cin >> s; int i; for (i = 0; i < s.size(); i++) { if (s[i] == '1')loc[++cnt] = i; } for (i = 0; i < s.size(); i++) { if (s[i] == '0')break; dp[i + 1] = 0; } for (int op = i+1; op <= cnt; op++) { dp[op] = max(dp[op - 1] + 1, loc[op] - (op - 1)); } for (i = 1; i <= cnt; i++)ans = max(ans, dp[i]); cout << ans; return 0; }#大疆的机械笔试比去年难吗##大疆求职进展汇总##大疆##笔试#