打印绝对排序数组。有关说明,请参阅示例输出。
input: arr = [2, -7, -2, -2, 0]
output: [0, -2, -2, 2, -7]
Run Code Online (Sandbox Code Playgroud)
现在我使用 lambda 函数作为 STL 的比较器,std::sort但它没有给出正确的答案;帮助将不胜感激。
代码:
vector<int> absSort(const vector<int>& at)
{
vector <int> arr = at;
sort(arr.begin(), arr.end(), [&](const int a, const int b){
if (abs(a) < abs(b)) return -1;
if (abs(a) > abs(b)) return 1;
if (a < b) return -1;
if (a > b) return 1;
return 0;
});
return arr;
}
Run Code Online (Sandbox Code Playgroud) c++ ×1