Pomoc w optymalizacji kodu c++

0

Witam, potrzebuję pomocy w optymalizacji krótkiego kodu.

int Tape(std::vector<int>& A) //TapeEquilibrium
{
    int P=A.size()-1;
    std::vector<int> sumVec;
    for (int i=1; i<P+1;i++)
    { 
        sumVec.push_back(std::abs(std::accumulate(A.begin(), A.begin() + i, 0) - std::accumulate(A.begin() + i, A.end(), 0)));  
    }    
    return *std::min_element(sumVec.begin(), sumVec.end());
}
3

Ale co chcesz optymalizować? Czas wykonania? Zużycie pamięci? Ilość wierszy? Jedyną oczywistą rzeczą jaką mogę Ci doradzić to dodać reserve jeśli zawczasu znasz rozmiar sumVer.

std::vector<int> sumVec;
sumVec.reserve(static_cast<size_t>(P));
2
    int right=std::accumulate(A.begin(), A.end(), 0),left=0,best=right;
    for(int x:A)
    {
        best=std::min(best,std::abs(left,right));
        left+=x;
        right-x;
    }
    return best;

1 użytkowników online, w tym zalogowanych: 0, gości: 1