我在試圖找到一種方法從一系列數字中提取符合條件的最長序列:每個數字必須是其後面數字的前綴。從矢量中提取一定數量的數字
例如:對於系列:523,742,7421,12,123,1234,87
它應該顯示12,123,1234
。
我想過把這個序列存儲在一個向量中,然後迭代它,並移動滿足另一個向量條件的數字。不過,我被困在選擇(在上面的例子中12,123,1234
代替742, 7421
)的最長序列。這裏是我寫到目前爲止代碼:
bool prefix(int a, int b){
if ((b/10 - ((b % 10))/10) == a)
return 1;
else return 0;
}
vector<int> choose_sequence(vector<int> &series){
vector<int> right_sequence;
int count = 0;
for (int i = 0; i < series.size();){
for (int j = i + 1; j < series.size();){
if (prefix(series.at(i), series.at(j))){
right_sequence.push_back(series.at(i));
right_sequence.push_back(series.at(j));
i=j;
j++;
}
else
i++;
}
}
return right_sequence;
}
任何建議或修正的歡迎和最appreciate.Also,如果你知道使用另一種數據類型比載體更好的方法,請分享。
這是一個典型的動態規劃問題。你有沒有考慮過使用它? –