科大讯飞07-29笔试

选择题不好做感觉,我也不知道做得啥样。
编程题三道都AC了,算是运气比较好
第一题是冰点那个好像,印象不深了,比较简单;
第二题是数组距离,求两个数组a和b每个元素的差的绝对值,可以不限制把每个元素乘以-1,求最小的距离。我的思路是在输入b数组时,就开始计算 |a[i]-b[i]|  和 |a[i] + b[i]| ,取二者小的值加到最终结果里。int 类型卡60%,这个是要注意的地方。之前有次笔试就是吃了这个亏;
第三题是正整数拆分。拆分成两个正整数,给定一个禁点数组,数组内的数不能被作为拆分因子。先是模拟,遍历到s,优化到s-2发现都只能过20%,意识到不能这样模拟。
最终想到用总方案-禁点数。这里有个坑,不能直接减 unordered_set 的size,题目中禁点的范围可能超出s,所以要判断,而且要考虑成组出现的禁点,比如s是10,禁点是1和9时,就不能乘以2,禁点是1和2,这种不是成组的,就可以乘2。最终的count也要注意类型。
全部评论
第三题只过了20%,考虑了禁着点可能大于s,但是以下代码报错 段错误,请帮忙看下哪里出问题了? int main() { int n; std::cin >> n; std::vector<int> a(n); std::unordered_set<int> hash; for (int i = 0; i < n; ++i) { int v; std::cin >> v; a[i] = v; hash.emplace(v); } int s; std::cin >> s; long long res = s - 1; for (int i = 0; i < n; ++i) { if (a[i] >= s) continue; if (hash.count(s - a[i])) --res; else res -= 2; } printf("%lld", res); }
点赞 回复 分享
发布于 2023-07-29 22:15 陕西
请问笔试都是ACM模式 需要自己写输入输出吗
点赞 回复 分享
发布于 2023-08-02 14:04 北京

相关推荐

逆流河上万仙退:如果是能有面试的话应该简历没啥问题 争取表现好一点然后到岗时间实习天数往长了说 先看看能不能有offer
点赞 评论 收藏
分享
评论
3
10
分享

创作者周榜

更多
牛客网
牛客企业服务