完美世界c++笔试

九宫格,圆心在中间格。判断圆覆盖几个格子
判断完美数组的个数。
第一题a了80,第二题想暴力没时间了,求大神解答一下#完美世界#
全部评论
我也是c++,我们题目竟然不一样
2 回复 分享
发布于 2020-08-25 21:26
先sort下然后algorithm里有个库函数调用一下do while 就是全排列了 bool isSq(int k) { if ((int)sqrt(k) == sqrt(k)) return true; return false; } int perfectArrayNum(vector < int > array) { sort(array.begin(), array.end()); int sum = 0; do { int flag = 1; for (int i = 0; i < array.size()-1; ++i) { if (isSq(array[i] + array[i + 1])); else { flag = 0; break; } } if (flag == 1) ++sum; } while (next_permutation(array.begin(), array.end())); return sum; }
1 回复 分享
发布于 2020-08-25 23:09
后来发现第三题不能用矩形外框,那样我也A了80,得判断点到圆心距离,选择题有个问各种排序时间空间复杂度的,那个题没答案啊
点赞 回复 分享
发布于 2020-08-25 21:19
圆是在中间格吗!!!我以为圆心可能出现在任意位置折腾了半天没写完
点赞 回复 分享
发布于 2020-08-25 21:26
真正的大神第二题用stl自带的全排列函数,辛苦写了半天递归也没写完的我看到竟然还有这种神奇函数直接哭了出来
点赞 回复 分享
发布于 2020-08-25 21:42
最后一题我也是全排列,测试用例都过了,最后只过了20%
点赞 回复 分享
发布于 2020-08-25 21:59
题目不一样
点赞 回复 分享
发布于 2020-08-25 22:04

相关推荐

点赞 2 评论
分享
牛客网
牛客企业服务