@MARK letcode练习
letcode 练习
为了督促自己学习,特意采用博客的模式,记录自己在所学所做过程中遇到的坑以及解决方法。
1 超时
在letcode练习中,超时是常遇到的错误。
- 如果代码中需要用到排序,尽量使用sort。
# a[i]和b[i]是一一对应的:想对a进行从大到小的排序,相应的b也要变换到对应位置
# 下面的做法 很大概率会超时
for (int i = 0; i < a.size() - 1; i++) {
for (int j = i + 1; j < a.size(); j++) {
if (a[i] < a[j]) {
int tmp = a[i];
a[i] = a[j];
a[j] = tmp;
tmp = b[i];
b[i] = b[j];
b[j] = tmp;
}
}
}
# 构造成sort排序可解决
size_t len = a.size();
# 构造一个可以用sort排序的t
vector<vector<int>> t;
for (size_t i = 0; i < len; ++i) {
t.push_back({a[i], b[i]});
}
sort(t.begin(), t.end(), [](vector<int>& p, vector<int>& q) {return p[0] < q[0];});