【远景+顺丰科技笔试】远景100 100 顺丰 100 64

算法岗笔试
远景的笔试比较简单
第一题 二分查找,左右扩张就可以,注意判断下x <= a[0] 和 x >= a[a.size() - 1]的情况
第二题标准0 1背包

顺丰科技
第一题:通过peo存放每个人会的语言数,lan存放每种语言会的人,转化成图dfs,需要判断k==0的情况此时return n
第二题:只写了个暴力的n^2dp,通过64%,实在是没时间了
楼下放顺丰代码
#顺丰科技##笔试题目##远景能源有限公司##笔经#
全部评论
同样是暴力dp为什么我27%就超时了😭
点赞 回复 分享
发布于 2019-08-29 21:12
大佬是怎么做到两套题都做的
点赞 回复 分享
发布于 2019-08-29 21:12
顺丰第一题: int main() {     int n, m, k;     cin >> n >> m >> k;     vector<vector<int>> peo(n + 1);     vector<vector<int>> lan(m + 1);     for (int i = 0; i < k; i++) {         int a, b;         cin >> a >> b;         peo[a].push_back(b);         lan[b].push_back(a);     }     vector<bool> flag(n + 1, false);     int res = 0;     for (int i = 1; i <= n; i++) {         if (flag[i] == false) {             res++;             queue<int> q;             q.push(i);             flag[i] = true;             while (!q.empty()) {                 int cur = q.front();                 q.pop();                 for (int i = 0; i < peo[cur].size(); i++) {                     for (int j = 0; j < lan[peo[cur][i]].size(); j++) {                         if (flag[lan[peo[cur][i]][j]] == false) {                             q.push(lan[peo[cur][i]][j]);                             flag[lan[peo[cur][i]][j]] = true;                         }                     }                 }             }         }     }     if (k == 0)         cout << res << endl;     else         cout << res - 1 << endl;     system("pause");     return 0; }
点赞 回复 分享
发布于 2019-08-29 21:09
求远景代码,很简单但是a不了😂
点赞 回复 分享
发布于 2019-08-29 22:14
佬中佬  两个居然能一起
点赞 回复 分享
发布于 2019-08-29 21:45
100 100 27 91
点赞 回复 分享
发布于 2019-08-29 21:29
也是一起做的,100,100,18,100, 18随便做的😂,没看懂题要干啥
点赞 回复 分享
发布于 2019-08-29 21:27
大佬可以贴下题目吗
点赞 回复 分享
发布于 2019-08-29 21:17
老哥真猛啊,我也是一起做的,100,100,0,64😂,看到最长递增子序列以为很简单,然后卡住了……这题tm还是非严格递增
点赞 回复 分享
发布于 2019-08-29 21:17
巨佬,你是两个笔试一起做的吗???
点赞 回复 分享
发布于 2019-08-29 21:15
TQL,大佬
点赞 回复 分享
发布于 2019-08-29 21:14
顺丰第二题: int main() {     int n;     cin >> n;     vector<int> a(n);     for (int i = 0; i < n; i++)         cin >> a[i];     vector<int> dp(n, 1);     for (int i = 0; i < n; i++) {         for (int j = i - 1; j >= 0; j--) {             if (dp[i] >= j + 2)                 break;             if (a[i] >= a[j])                 dp[i] = max(dp[i], dp[j] + 1);         }     }     cout << dp[n - 1] << endl;     system("pause");     return 0; }
点赞 回复 分享
发布于 2019-08-29 21:09

相关推荐

饿魔:看到在线简历了吧
点赞 评论 收藏
分享
评论
2
23
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务