leetcode:1090. 受标签影响的最大值(排序)

题目:

在这里插入图片描述

分析:

pair,按照第一个排序。

代码:

#include<bits/stdc++.h>
using namespace std;
bool cmp(pair<int,int> &p1,pair<int,int> &p2){
        return p1.first > p2.first;
}//从大到小排 
int main()
{
 vector<pair<int,int> > vp;
 vector<int> values;
 vector<int> labels;
 int num_wanted;
 int use_limit;
 if(num_wanted==0) return 0;
 for(int i=0;i<values.size();i++)
 {
  pair<int,int> p;
  p.first=values[i];
  p.second=labels[i];
  vp.push_back(p);
 }
 sort(vp.begin(),vp.end(),cmp);
 int num=1;
 map<int,int> m;
 m[vp[0].second]=1;
 int all=vp[0].first;
 if(num_wanted==1) return vp[0].first;
 for(int i=1;i<values.size();i++)
 {
  if(m[vp[i].second]==use_limit) continue;
  m[vp[i].second]++;
  all+=vp[i].first;
  num++;
  if(num_wanted==num) break;
 }
 return all;
} 

猜你喜欢

转载自blog.csdn.net/weixin_42721412/article/details/106101436