作为招聘过程的一部分,我最近在网上进行了一次关于数据的测试.在1小时内我被给了两个简单的问题来解决.对于那些不了解数据的人来说,它是一个在线编码测试网站,您可以用许多不同的语言解决ACM风格问题.
如果你有30分钟以上,那么检查这个http://codility.com/demo/run/
我的选择武器通常是Java.
所以,我有一个问题如下(我会尽量记住,应该采取截图)
让我们说你有数组A [0] = 1 A [1] = – 1 …. A [n] = x
那么当A [i] A [j]甚至在哪里我会发现什么是最聪明的方法? Ĵ
所以如果我们有{1,2,3,4,5}
我们有1 3 1 5 2 4 3 5 = 4对是均匀的
我写的代码是一些事情
int sum=0; for(int i=0;i<A.length-1;i++){ for (int j=i+1;j<A.length;j++){ if( ((A[i]+A[j])%2) == 0 && i<j) { sum++; } } }
还有一个限制,如果对数大于1e9,那么它应该重新运行-1,但是让它忘记它.
你能建议一个更好的解决方案吗?正常情况下,元素数不超过1e9.