君子有诸己而后求诸人,无诸已而后非诸人。所藏乎身不恕,而能喻诸人者,未之有也。
1 sort函数的比较机制更改
sort
函数默认是按变量的值从小到大排序,那么如何自定义呢?下面以按绝对值从大到小排序
1 2 3 4 5 6 7 8 9 10 11
| class Solution { static bool cmp(int a, int b) { return abs(a) > abs(b); }
public: int diy_sort(vector<int>& nums, int k) { sort(nums.begin(), nums.end(), cmp); return 0; } };
|
给定一个二维数组vector<vector<int> > people
,n * 2 要求按照第一个元素从大到小,在第一个元素相同的情况下,第二个元素从小到大排列
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| class Solution { public: static bool cmp(const vector<int> &a, const vector<int> &b){ if(a[0] == b[0]) return a[1] < b[1]; return a[0] > b[0]; }
vector<vector<int>> reconstructQueue(vector<vector<int>>& people) { sort(people.begin(), people.end(), cmp); vector<vector<int> > que; for(int i = 0; i < people.size(); i ++) { que.insert(que.begin() + people[i][1], {people[i][0], people[i][1]}); } return que; } };
|