第23620题 单选
关于下列C++高精度减法函数的说法,正确的是?

小杨编写了如下的C++高精度减法函数:

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

如果数组a表示的整数小于b表示的整数,代码会正确返回二者的差为负数。

B

代码假设输入数字是以倒序存储的,例如 500存储为 {0, 0, 5} 。

C

代码的时间复杂度为O(a.size() + b.size())

D

当减法结果为0时,结果数组仍然会存储很多个元素0。