大疆筆試20240818 C++音視頻開發(fā)
6道單選
6道多選
5道判斷
2道編程
編程題(1):有很多個(gè)機(jī)場(chǎng),編號(hào)1~2^20,一開始所有機(jī)場(chǎng)都沒有飛機(jī),給你所有 有飛機(jī)降落的機(jī)場(chǎng)編號(hào) 和 有飛機(jī)起飛的機(jī)場(chǎng)編號(hào) ,每次只降落或起飛一架飛機(jī),求最后時(shí)刻還停留1~15架飛機(jī)的機(jī)場(chǎng)個(gè)數(shù)。
#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):給你一個(gè)只包含0和1的字符串,每次操作能把字符串內(nèi)所有01變成10,求多少次操作以后字符串內(nèi)沒有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; }#大疆的機(jī)械筆試比去年難嗎##大疆求職進(jìn)展匯總##大疆##筆試#