【发布时间】:2020-10-01 08:02:09
【问题描述】:
给定两个非负整数 num1 和 num2 表示为字符串,返回 num1 和 num2 的和。
class Solution {
public:
vector<int> addToArrayForm(vector<int>& A, int K) {
int i=A.size()-1;
vector<int> result={};
long long int no=0;
for(int x:A)
{
no=no+x*pow(10,i);
i--;
}
no=no+K;
if(no==0)
return {0};
while(no>0)
{
long long int r=no%10;
result.push_back(r);
no=no/10;
}
reverse(result.begin(),result.end());
return result;
}
};
我收到这个错误很长。
第 9 行:字符 14:运行时错误:1e+19 超出“long long”类型的可表示值范围 (solution.cpp) 摘要:UndefinedBehaviorSanitizer:undefined-behavior prog_joined.cpp:18:14
【问题讨论】:
-
A可以是任意大小。您的编译器告诉您,如果 A 大于 19 个元素,此函数将产生溢出。 -
是的,我现在将致力于优化解决方案
标签: c++ string vector data-structures long-integer