实现要点:
将数组按照特定规则排序,依次组合起来就是最小的数。
排序规则为 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;
}
本文介绍了一种算法,用于将一组整数按照特定规则排序并组合成最小可能的数值。通过自定义排序规则A+B<B+A,实现了将数字数组转换为最小数值的功能。
691

被折叠的 条评论
为什么被折叠?



