第一题这么做,50%。哪里错了吗 bool compare(pair<int, int> a, pair<int, int> b) { if (a.first < b.first) return true; else if (a.first == b.first) return a.second <= b.second; else return false; } void test() { int n; cin >> n; vector<pair<int, int> >arr; for (int i = 0; i < n; i++) { pair<int, int> tmp; cin >> tmp.first >> tmp.second; arr.push_back(tmp); } sort(arr.begin(), arr.end(), compare); vector<pair<int, int> > res; res.push_back(arr[n - 1]); int maxy = arr[n - 1].second; for (int i = n-2; i >= 0; i--) { if (arr[i].second > maxy) { res.push_back(arr[i]); maxy = arr[i].second; } } int len = res.size(); for (int i = len - 1; i >= 0; i--) cout << res[i].first << " " << res[i].second << endl; }
点赞 4

相关推荐

04-01 16:02
已编辑
武汉工程大学 Java
沉淀小子:不太懂你强调第一次面的意思,感觉没必要强调,有面试就去面,少搞点焦虑
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务