Codibility任务TapBalancement的正确率只有33%
Codility task TapEquilibrium correctness only 33%
我尝试了Codibility任务"TaskBalancement",在核心性标准下只收到33%。你可以在下面的链接中查看我的C++代码和问题陈述:
https://codility.com/demo/results/trainingAPHQW7-UVM/
我解决这个问题的方法是首先计算数组元素的总和。然后我找到每次迭代中的差异(第一次迭代不同),并更新最小绝对值。
我能够检查提到的测试案例,但没有收到其他一些案例的正确答案。
请检查我的代码,并告知哪里是算法错误。提前谢谢。
逻辑中的一个大缺陷是,您假设P
至少为1,但在某些情况下,P = 0
会给您带来最小的差异。
例如,对于[1,-1]
的列表,您需要P=0
,以便它给您[]
和[1,-1]
,后者给您最小差0
另一个问题是,当你循环遍历每个元素时,你还没有更新你的diff
(diff
总是sum of A[1..N] - A[0]
),因此当p > 2
时,temp = diff + 2*A[p-1];
不会给你有意义的结果。
你的循环应该看起来像(pesudo代码):
minDiff = sum;
diff = sum;
for each (int a in A) {
diff -= (a * 2);
if (abs(diff) < minDiff) {
minDiff = abs(diff);
}
}
这样只保留diff是个好主意,但如果它让你感到困惑,为什么不简单地保留两个var,例如sumOfFirstSection = 0; sumOfSecondSection = sum
,并为A[]
中的每个元素都有一个循环,然后执行sumOfFirstSection += A[i]; sumOfSecondSection -= A[i]
并相应地导出差呢?
相关文章:
- 有没有任务栏API可以立即应用注册表更改
- 如何创建线程序列以按照启动顺序执行任务?
- C++一个线程如何正确通信其任务已完成?
- 在线程之间拆分任务总是值得的吗?
- 递归求和任务的错误答案
- "main"函数堆栈中的对象在第一个任务运行时被覆盖 (FreeRTOS)
- C++ 任务流库入门
- Pisarze - 来自波兰奥林匹克信息学的数据分析任务
- 在程序运行时监视 VxWorks 中的任务 CPU 利用率
- 编写一个读取五个整数并执行一些任务的C++程序
- 任务内部的 OpenMP 任务循环
- 不知道如何在家庭作业任务中实现一件事
- 如何安全地停止 IOCP WSARecv() 任务,并释放 WSAOVERLAPED 结构?
- 为什么我的 FreeRTOS 任务看不到类成员?
- 当前步骤:构建任务.json 文件
- 命令模式 - 使用"weight"执行任务的命令
- 无法删除EXE崩溃后,即使进程未显示在任务管理器中
- 需要帮助来理解我的任务的 QRegularExpression
- xSemaphoreTake 在调用 xSemaphoreGive 后不会恢复任务
- Codibility任务TapBalancement的正确率只有33%