本博客所有出现的 [不一样的剑指offer] 系列,个人认为都比书上的题解更好理解。
概括:这道题的难点有2
1.隐形的大数问题,需要把int->string
2.深刻理解书上所写的
比较规则,并灵活运用。
class Solution {
public:
string minNumber(vector<int> &nums) {
vector<string> strs;
string res;
//用一个for循环来将int->string
for (auto num:nums)
strs.push_back(to_string(num));
//或者用std::transform
// vector<string> ans(nums.size());
// transform(nums.begin(), nums.end(), ans.begin(), [](int a) -> string { return to_string(a); });
sort(strs.begin(), strs.end(), [](const string &a, const string &b){ return a + b < b + a; });
for (const auto &str:strs)
res += str;
return res;
}
};
对int类型转string类型的操作也可以参看屏蔽掉的部分,灵活运用STL库可太吊了。
个人见解,欢迎讨论指教!
本文深入解析《剑指Offer》中一道涉及大数处理及字符串排序的难题,分享了一种优于书本解答的理解方法,通过将整数转换为字符串并自定义排序规则,实现了寻找最小数值组合的目标。
172万+

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



