近期论坛无法登录的解决方案


一亩三分地论坛

 找回密码
 获取更多干活,快来注册

一亩三分地官方iOS手机应用下载
查看: 225|回复: 1
收起左侧

Amazon OA Movie

[复制链接] |试试Instant~ |关注本帖
yangcheng901211 发表于 2017-6-18 05:46:56 | 显示全部楼层 |阅读模式

2017(7-9月) 码农类 本科 全职@Amazon - 内推 - 在线笔试 |Other在职跳槽

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

您需要 登录 才可以下载或查看,没有帐号?获取更多干活,快来注册

x
OA 前做的movie 那道题
请问有没有什么问题啊
#include <iostream>
#include <vector>
#include <queue>
#include <set>
using namespace std; 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
class Movie{.1point3acres缃
        private:
                int id;
                float rate;
        public:
                Movie(int id,int rate){
                this->id=id;
                        this->rate=rate;
                };.鏈枃鍘熷垱鑷1point3acres璁哄潧
                vector<Movie*> similarMovies;
                int getID(){return this->id;};
                float getRate(){return this->rate;};
                vector<Movie*>& getSimilar(){return this->similarMovies;};
};
class compare_item{
        public:
                bool operator()(Movie* A,Movie* B)
                {
                        return A->getRate()>B->getRate();
                };
};
vector<Movie*> find_s(Movie& movie, int N){
        vector<Movie*> result;
        if(!movie.getID()||N==0) return result;
        set<int> visited;. From 1point 3acres bbs
        queue<Movie*> q;
        priority_queue<Movie*,vector<Movie*>,compare_item> p_q;
        //visited.insert(movie.getID());
        q.push(&movie);
        while(!q.empty())
        {
                Movie* current = q.front();
                cout<<"currrent id: " << current->getID()<<endl;
                q.pop();
                if(visited.find(current->getID())==visited.end())//not visited
                {
                        if(current->getID()!=movie.getID())
                        {. Waral 鍗氬鏈夋洿澶氭枃绔,
                                cout<<"priority queue size = " << p_q.size() <<endl;
                                if(p_q.size()<N){
                                        p_q.push(current); cout<<"pushed id: " << current->getID()<<endl;. from: 1point3acres.com/bbs
                                }. from: 1point3acres.com/bbs
                                else if(p_q.size()==N&&current->getRate()>p_q.top()->getRate()){
                                        cout<<"replaced top id: " << current->getID()<<endl; 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
                                        p_q.pop();p_q.push(current);
                                }
                       
                        }
                        vector<Movie*> neighbour = current->getSimilar();
                        for(int i=0;i<neighbour.size();i++)
                        {
                                q.push(neighbour[i]);
                        }
                }.鐣欏璁哄潧-涓浜-涓夊垎鍦
                visited.insert(current->getID());
        }
        while(!p_q.empty())
        {
                result.push_back(p_q.top());.鐣欏璁哄潧-涓浜-涓夊垎鍦
                p_q.pop();
        }
        return result;
}. 1point 3acres 璁哄潧
int main(int argc, char *argv[]) {
        Movie A(1,1);
        Movie B(2,2);
        Movie C(3,3);. from: 1point3acres.com/bbs
        Movie D(4,9);
        Movie F(5,5);. 1point 3acres 璁哄潧
        A.similarMovies.push_back(&B);
        A.similarMovies.push_back(&C);
        A.similarMovies.push_back(&D);
        B.similarMovies.push_back(&F);
        C.similarMovies.push_back(&A); 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
        C.similarMovies.push_back(&B);. Waral 鍗氬鏈夋洿澶氭枃绔,
        D.similarMovies.push_back(&A);
        vector<Movie*> result = find_s(A,1);
        cout<<"start" <<endl;
        cout << result.size() << endl;
        for(int i=0;i<result.size();i++).鐣欏璁哄潧-涓浜-涓夊垎鍦
                cout<<"ID: "<<result[i]->getID() << " Rate:" << result[i]->getRate()<<endl;
        return 1;
       
}

 楼主| yangcheng901211 发表于 2017-6-18 05:48:04 | 显示全部楼层
关注一亩三分地公众号:
Warald_一亩三分地
请大家指点 打算明天做OA
回复 支持 反对

使用道具 举报

本版积分规则

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2017-6-27 01:44

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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