今年帮人做了下亚马逊的在线测评题,题和代码如下如下
稍微推导一下发现符合杨辉三角,代码如下
int calcMaxVertex(vector < int > numbers) {
vector<int> factor = {1,1};
while (factor.size() < numbers.size()){
vector<int>temp;
temp.push_back(factor.front());
for (vector<int>::iterator i = factor.begin() + 1; i != factor.end(); ++i)
temp.push_back(*i + *(i - 1));
temp.push_back(factor.back());
factor = temp;
}
int result = 0;
sort(numbers.begin(), numbers.end());
sort(factor.begin(), factor.end());
for (int i = 0; i < numbers.size(); ++i)
result += factor[i] * numbers[i];
return result;
}