一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
码农求职神器Triplebyte:
不用海投,内推多家公司面试
Airbnb 数据科学职位
in analytics and inference
游戏初创公司
招聘工程师、Designer和游戏策划
游戏初创公司DreamCraft招聘工程师、UIUX Designer和游戏策划
电商初创公司Good Days
招聘SDE/UI/TPM实习生
把贵司招聘信息放这里
查看: 3342|回复: 1
收起左侧

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

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

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

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

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

x
the original  link  is :. visit 1point3acres.com for more.
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;
import java.util.Comparator;. Waral 鍗氬鏈夋洿澶氭枃绔,
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedList;. more info on 1point3acres.com
import java.util.List;
import java.util.Map;
. visit 1point3acres.com for more.. Waral 鍗氬鏈夋洿澶氭枃绔,
/*
* 1. Use a HashSet<String> courseSet and store all the courses made by the user
2. Keep one more HashMap<Course, Integer> recommendation
2. Get the list of Friends for the user -google 1point3acres
3. Iterate through the friends list and in that find the courses selected by the friend
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.
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 {
. visit 1point3acres.com for more.
        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)). Waral 鍗氬鏈夋洿澶氭枃绔,
                                        continue;
                                if(recommendMap.get(course)!=null){. 1point3acres.com/bbs
                                        recommendMap.put(course, recommendMap.get(course)+1);
                                }
                                else{
                                        recommendMap.put(course,1);
                                }. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
                        }
                }
                if(recommendMap !=null && recommendMap.size() >0)
                        return sortByValue(recommendMap);
                return null;
        }
        . 1point 3acres 璁哄潧
        public static Map sortByValue(Map unsortMap) {         
                List list = new LinkedList(unsortMap.entrySet());
         
                Collections.sort(list, new Comparator() {
                        public int compare(Object o1, Object o2) {
                                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){. from: 1point3acres.com/bbs
                return null;        . From 1point 3acres bbs
        }. 鍥磋鎴戜滑@1point 3 acres
        public static HashSet<String>getCoursesForUser(String userId){.1point3acres缃
                return null;-google 1point3acres
        }. more info on 1point3acres.com
}

hopfully  it helps



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

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2018-1-20 09:55

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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