leetcode校园自行车分配c++

校园自行车分配

题目链接:https://leetcode-cn.com/problems/campus-bikes/

解题思路:

用一个结构体中包含worker的ID,和bike的ID以及两者之间的距离,求出每个worker与bike之间的距离然后从小到大排序,再依次给worker分配bike。

代码实现:

class Solution {
public:
    struct node//存放某worker与某bike中的曼哈顿距离des
        {
            int id_worker;
            int id_bike;
            int des;
        };
        static bool ismax(const node &a,const node &b)//自定义比较函数
        {
            if(a.des==b.des)
            {
                if(a.id_worker==b.id_worker)//同一个工人与不同的单车有相同的距离
                    return a.id_bike assignBikes(vector>& workers, vector>& bikes) {
        int n=workers.size();//工人数量
        int m=bikes.size();//单车数量
        vector a;//类型为node的容器,存放遍历数据
        vector visw(n,false);//标志工人是否分配了单车
        vector visb(m,false);//标志该单车是否分配了工人
        vector  res(n);//存放分配结果
        node tem;
        for(int i=0;i

你可能感兴趣的:(刷题,leetcode,乐乐的c++刷题之路)