做 OA 遇到了bug

刚刚在 CodeSignal 上做了 OA,结果很不好,一题超时,想不出更优的解法,分数很低。

我认为那道题只能有 n^2 的解法,两个 Array 都要遍历一遍,我用了 n^2 的算法加上剪枝,过了一些样例,超时了其余的。很大可能是 C++ 给了更严格的时间限制。

但是,

我想说的不是这道题的解法,而是这个平台。

我遇到了一个很奇怪的bug,在判断两个 int 类型的数大小时

int a = 1, b = -1;
if (a < b) 
  cout << "a < b is true" << endl;

// a < b is true

或者

int a = 2, b = INT_MIN;
cout << (a < b) << endl;

// 1

他会出现这样的bug。我不知道其他情况是什么返回,时间有限没有测试,但是只要第二个数是负数,每次运行的第一次肯定返回错误的答案。

这样的调试,花了较长的时间。因为在 oa 时,我只能一行一行代码 cout 调试。我以为是哪里的逻辑出了问题,直到 cout 到这个地方,才发现。

CodeSignal 这个平台很怪,他出题的难度很奇葩,不同时间,不同人做题,出现的题难度有非常大的差别。运气好的时候,遇到很简单的题,运气不好的时候,遇到很难的题。这些都很正常。但是他会限制你做题的次数,每 15 天只能做一次。这两个情况单独哪个出现都很合理,但是两个一起来,就很不合理。如果你瞎出题,那 15 天做一次,运气成分就占了绝大多数了。过了简历初晒,我认为自己已经过了最基本的运气筛人了。你在这个步骤搞运气,随机踢掉一些应聘者,真缺德。

而且,这个测试根本没能测试出代码能力。前两道题忘记是什么了,反正不涉及到算法。 OA,就考察 for 循环能力吗?至少来个 DP,Greedy, 图论的考题吧?我记得第三题用了 BFS 的变形,算是唯一能拿得上台面的题了,除非第四题有比 n^2 更快的解法,但是理论上不可能。不能 DP 不能贪心的题,总要把所有情况 search 一遍,剪枝。

No Comments

Send Comment Edit Comment


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
Previous
Next