实现要点:
将数组按照特定规则排序,依次组合起来就是最小的数。
排序规则为 A + B < B + A时为true。
代码实现:
std::string GetMinNumber(const std::vector<int>& datas)
{
if (datas.empty()) return "";
std::vector<std::string> tempDatas;
for (auto& curData : datas) tempDatas.push_back(std::to_string(curData));
auto sortFunc = [](const std::string& left, const std::string& right) {return left + right < right + left; };
std::stable_sort(tempDatas.begin(), tempDatas.end(), sortFunc);
std::string minNum;
for (auto& curData : tempDatas) minNum += curData;
return minNum;
}