を取得、私はこの質問を解決しようとしています:https://www.interviewbit.com/problems/add-one-to-number をしかし、私はいつも時間計算エラー
時間計算エラー取得しています:
ランタイムエラーを。実行時エラーのために送信が停止しました。例: ゼロ除算、配列インデックスが範囲外、キャッチされない例外 は、カスタム入力でコードをテストし、コードにデバッグ ステートメントを入れてみることができます。
誰も私の解決策に間違っていると教えてもらえますか?
vector<int> Solution::plusOne(vector<int> &A) {
vector<int> res;
int rem=1;
while(A[0]==0 && A.size()>1){
A.erase(A.begin());
}
for(vector<int>::reverse_iterator it=A.rbegin();it!=A.rend();++it){
int t = *it;
t=t+rem;
res.insert(res.begin(), t%10);
rem = t/10;
}
while(rem!=0){
res.insert(res.begin(), rem);
rem/=10;
}
return res;
}
デバッガを使用してコードをステップ実行する方法を学ぶ必要があるようです。良いデバッガを使用すると、プログラムを1行ずつ実行し、どこからずれているかを確認することができます。これはプログラミングをする場合に不可欠なツールです。詳しい読書:** [小さなプログラムをデバッグする方法](http://ericlippert.com/2014/03/05/how-to-debug-small-programs/)** – NathanOliver
消去と挿入ではなく、上書きする。消去(除去)は不要な操作です。 –
Aが空のときにplusOneを呼び出すとどうなりますか? A [0]を考えてみよう。 –