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;
} 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章