860.柠檬水找零
- 简单题,正常做就行,没什么套路
406.根据身高重建队列
- 没什么思路,Carl:当有两个维度的要求时,先确定一个维度再去确定另外一个维度,不要试图同时进行
- 一个是身高维度,一个是人数维度,先在身高维度从高排到低,再在人数维度进行调整
- 思路理解了,但是算法细节上实现不出来,有以下几点要注意:
sort(begin, end, cmp)
:begin给定区间第一个元素的指针,end给定区间下一个元素的指针,cmp排序方式;若cmp省略则默认按从小到大方式排列,若填greater<int>()
则按从大到小方式排列,若排列方式特殊则需要写一个函数,在本题中:static bool cmp(const vector<int> a, const vector<int> b){ if(a[0] == a[b]) return a[1] < b[1]; return a[0] > b[0]; }
vec.insert(vec.begin()+i, number)
- 用vector中的insert操作费时,因此用
list<vector<int>> que
,最后输出时令return vector<vector<int>>(que.begin(), que.end());
452. 用最少数量的箭引爆气球
- 首先要理解题目意思,其次没有那么复杂,先排序,再依次看有没有重叠即可
- 注意思路
- 注意,在
static bool cmp(const vector<int>& a, const vector<int>& b)
中,参数不加const
就会导致运行超时,加了const
就不会