---
# System prepended metadata

title: 1626. Best Team With No Conflicts
tags: [Leetcode]

---

<style>
    html, body, .ui-content {
    background: #222222;
    color: #00BFFF;
}
    /* 設定 code 模板 */
    .markdown-body code,
.markdown-body tt {
    background-color: #ffffff36;
}
.markdown-body .highlight pre,
.markdown-body pre {
    color: #ddd;
    background-color: #00000036;
}
.hljs-tag {
    color: #ddd;
}
.token.operator {
  background-color: transparent;
}    
/* 設定連結 */
a,
.open-files-container li.selected a {
    color: #89FFF8;
    
}
a:hover,
.open-files-container li.selected a:hover {
    color: #89FFF890;
}
   
</style>

###### tags: `Leetcode`

# 1626. Best Team With No Conflicts

###### Link : https://leetcode.com/problems/best-team-with-no-conflicts/description/

## 題目
回傳最大的團隊分數，團隊中不能出現年紀較大的分數小於年紀較小的分數
## 程式碼
```cpp=
class Solution {
public:
    int bestTeamScore(vector<int>& scores, vector<int>& ages) {
        const int n = scores.size();
        //用vector<pair<>>優先排序age再排序score
        vector<pair<int, int>> agescore;
        for(int i = 0;i < n;i++){
            agescore.push_back({ages[i], scores[i]});
        }
        sort(agescore.begin(), agescore.end());
        
        vector<int> Score;
        for(auto &it : agescore){
            Score.push_back(it.second);
        }
        //尋找最大分數
        int maxScore = 0;
        for(int i = 0;i < n;i++){
            for(int j = i - 1;j >= 0;j--){
                //如果分數比年齡小的大，可以計算
                if(agescore[i].second >= agescore[j].second)
                    Score[i] = max(Score[i], agescore[i].second + Score[j]);
            }
            //更新maxScore
            maxScore = max(maxScore, Score[i]);
        }
        return maxScore;
    }
};
```

## Date 
### 2023/1/31