10月28,K神开课讲数据科学,你来吗?


一亩三分地论坛

 找回密码
 获取更多干活,快来注册
Babeltime游戏工作室招工程师、美术和策划
Tubi TV招安卓、前端和机器学习工程师
把贵司招聘信息放这里
查看: 3167|回复: 1
收起左侧

Amazon OA新题 用户-好友-好友推荐的课程 code

[复制链接] |试试Instant~ |关注本帖
laonong15 发表于 2016-2-24 04:53:48 | 显示全部楼层 |阅读模式

2016(1-3月) 码农类 本科 全职@Amazon - Other - 技术电面 |Other其他

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

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

x
the original  link  is :
http://www.1point3acres.com/bbs/ ... p;page=1#pid2230193

just  write the code  by myself,  but  didnt test it :

package Amazoninterview;

. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴import java.util.Collections;. 1point3acres.com/bbs
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedList;. visit 1point3acres.com for more.
import java.util.List;
import java.util.Map;

/*.鏈枃鍘熷垱鑷1point3acres璁哄潧
* 1. Use a HashSet<String> courseSet and store all the courses made by the user
2. Keep one more HashMap<Course, Integer> recommendation -google 1point3acres
2. Get the list of Friends for the user
3. Iterate through the friends list and in that find the courses selected by the friend . Waral 鍗氬鏈夋洿澶氭枃绔,
4. If the course present in courseSet, omit else, put it in recommendation and increment it's count by 1. .鐣欏璁哄潧-涓浜-涓夊垎鍦
5. After all the friends are evaluated. Sort the recommendation by it's value,  

t's O(n) Space  because n is the number of courses selected in total by all your friends. .1point3acres缃
A  it would be O(k*p) where k is the number of friends and p is the number of courses a friend selects
*/
public class Recommender {

        public static void main(String[] args) {
               
        }
        public static Map<String,Integer> getRecommedations(String userId){
                List<String> friends = getFriendsListForUser(userId);. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
                HashSet<String> myCourses = getCoursesForUser( userId);
                if(friends ==null || friends.size() ==0 )
                        return null;
                if(myCourses == null)
                        myCourses = new HashSet<String>();
                HashMap<String,Integer> recommendMap = new HashMap<String,Integer>();
                for(String friend:friends){
                        HashSet<String> friendCourseList = getCoursesForUser( friend);.鐣欏璁哄潧-涓浜-涓夊垎鍦
                        for(String course:friendCourseList){
                                if(myCourses.contains(course))
                                        continue;. Waral 鍗氬鏈夋洿澶氭枃绔,
                                if(recommendMap.get(course)!=null){
                                        recommendMap.put(course, recommendMap.get(course)+1);
                                }. 1point 3acres 璁哄潧
                                else{
                                        recommendMap.put(course,1);. 1point3acres.com/bbs
                                }
                        }
                }
                if(recommendMap !=null && recommendMap.size() >0)
                        return sortByValue(recommendMap);
                return null;
        }
        . more info on 1point3acres.com
        public static Map sortByValue(Map unsortMap) {         
                List list = new LinkedList(unsortMap.entrySet());
         
                Collections.sort(list, new Comparator() {
                        public int compare(Object o1, Object o2) {. from: 1point3acres.com/bbs
                                return ((Comparable) ((Map.Entry) (o1)).getValue()).鐣欏璁哄潧-涓浜-涓夊垎鍦
                                                        .compareTo(((Map.Entry) (o2)).getValue());
                        }.鐣欏璁哄潧-涓浜-涓夊垎鍦
                });
         
                Map sortedMap = new LinkedHashMap();
                for (Iterator it = list.iterator(); it.hasNext();) {
                        Map.Entry entry = (Map.Entry) it.next();
                        sortedMap.put(entry.getKey(), entry.getValue());
                }
                return sortedMap;
        }
       
        //giving function
       
        public static  List<String> getFriendsListForUser(String userId){
                return null;       
        }
        public static HashSet<String>getCoursesForUser(String userId){
                return null;
        }
}
. visit 1point3acres.com for more.
hopfully  it helps 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
. 1point 3acres 璁哄潧


daykills 发表于 2016-2-24 09:43:23 | 显示全部楼层
我面的也是这题...你后来需要搞个半小时的电话面谈吗?
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-9-21 08:06

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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