查看: 829| 回复: 1
跳转到指定楼层
上一主题 下一主题
收起左侧

在职刷题 打卡

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
没有系统的刷过题,但在工作上感觉到数据结构非常有用,决定坚持刷题,立贴为证,加油加油

评分

参与人数 1大米 +1 收起 理由
wang_xinrui + 1 给你点个赞!

查看全部评分


上一篇:在职刷题打卡
下一篇:top interview questions刷题打卡
🔗
 楼主| Radford123 2019-2-15 13:11:56 | 只看该作者
全局:
今天做了地里分享的亚麻oa, 有点像https://www.lintcode.com/problem/k-closest-points/description
,用priority queue,把自己的解法也贴出来~~~

#include <iostream>
#include <vector>
#include <math.h>
#include <queue>

using namespace std;

using my_pair_t= pair<pair<int, int>, double>;
using my_container_t=vector<my_pair_t>;

double getDistance(pair<int, int> location);

vector<pair<int, int>> kpoint(int numDestinations, vector<pair<int, int>> allLocations, int numDeliveries) {
    auto my_comp = [](const my_pair_t &e1, const my_pair_t &e2) { return e1.second > e2.second; };
    priority_queue<my_pair_t, my_container_t, decltype(my_comp)> queue1(my_comp);

    vector<pair<int, int>> res;
    for (auto i: allLocations) {
        queue1.push(make_pair(i, getDistance(i)));
    }

    for (int i = 0; i < numDeliveries; i++) {
        const auto &p = queue1.top();
        res.push_back(p.first);
        queue1.pop();
    }
    return res;
}


double getDistance(pair<int, int> location) {
    double distance = sqrt(pow(location.first, 2) + pow(location.second, 2));
    return distance;
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表