小杨编写了一个如下的高精度减法函数:
vector<int> highPrecisionSubtract(vector<int> a, vector<int> b) {
vector<int> result;
int borrow = 0;
for (int i = 0; i < a.size(); ++i) {
int digitA = a[i];
int digitB = i < b.size() ? b[i] : 0;
int diff = digitA - digitB - borrow;
if (diff < 0) {
diff += 10;
borrow = 1;
}
else {
borrow = 0;
}
result.push_back(diff);
}
while (result.size() > 1 && result.back() == 0) {
result.pop_back();
}
return result;
}
下面说法,正确的是( )。
如果数组a表示的整数小于b表示的整数,代码会正确返回二者的差为负数。
代码假设输入数字是以倒序存储的,例如 存储为 {0, 0, 5} 。
代码的时间复杂度为 O(a.size() + b.size())
当减法结果为0时,结果数组仍然会存储很多个元素0。