gpt4 book ai didi

c++ - 我无法理解使用 C/C++ 的 codility PermMissingElem 错误

转载 作者:行者123 更新时间:2023-12-03 12:50:11 25 4
gpt4 key购买 nike

我使用C++来解决问题,codility PermMissingElem。我没有使用xor,只是使用序列之和。

c++

 int solution(vector<int> &A) {
// write your code in C++11 (g++ 4.8.2)
int n = A.size();
long long sum = ((n+1)*(n+2))/2;
for(int i=0; i<n; i++) {
sum -= A[i];
}
return (int)sum;
}

大型测试失败的测试分数的 80% = ~100000
错误答案示例,

got -2147483647 expected 1

但是,如果使用java跟随,结果是100%。

java

 public int solution(int[] A) {

long N = A.length + 1;
long total = N * (N + 1) / 2;

for (int i : A) {

total -= i;
}

return (int)total;
}

c++和java有什么区别?我使用了 sum、long、long long、long long int 的数据类型..

谢谢。

最佳答案

将 n 存储在 int 中。所以当你平方它时,你仍然有一个整数。然后你将该 int 分配给一个 long long sum,但为时已晚,因为已经发生了溢出。

关于c++ - 我无法理解使用 C/C++ 的 codility PermMissingElem 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39754970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com