(LeetCode 每日一题) 2410. 运动员和训练师的最大匹配数(排序、双指针)
题目:2410. 运动员和训练师的最大匹配数
思路:排序+双指针,时间复杂度0(nlogn)。
C++版本:
class Solution {
public:int matchPlayersAndTrainers(vector<int>& players, vector<int>& trainers) {sort(players.begin(),players.end());sort(trainers.begin(),trainers.end());int n=players.size(),m=trainers.size();for(int i=0,j=0;i<n;i++){while(j<m&&trainers[j]<players[i]) j++;if(j==m) return i;j++;}return n;}
};
JAVA版本:
class Solution {public int matchPlayersAndTrainers(int[] players, int[] trainers) {Arrays.sort(players);Arrays.sort(trainers);int n=players.length,m=trainers.length;for(int i=0,j=0;i<n;i++){while(j<m&&trainers[j]<players[i]) j++;if(j==m) return i;j++;}return n;}
}
GO版本:
func matchPlayersAndTrainers(players []int, trainers []int) int {n,m:=len(players),len(trainers)slices.Sort(players)slices.Sort(trainers)for i,j:=0,0;i<n;i++ {for j<m && trainers[j]<players[i] {j++}if j==m {return i;}j++}return n;
}