我爱编程

亚马逊AWS面经

2018-02-21  本文已影响0人  王鑫鑫_d516
  1. 准备工作 以前linked,sync async

2 代码 实现细节, static return package
3 QA 准备什么问题

时间:2018-1-10 
职位:aws 美国大叔
reverse words 复杂度 
要求尽可能time/space efficient
idea 及test case
时间:2018-2-7 
职位:内推的亚麻Austin的AWS Marketplace组 SDE
1. ArrayList和LinkedList的比较
2. HashMap的基本操作和时间复杂度
这两个除了理论上的复杂度之外,最好说一下实际中的复杂度,比如hashcode设计得不好时对复杂度的影响
3. print out a binary tree in level order
时间:2018-2-11
职位:AWS phone interview,老中
1道是蠡口 嗣酒
一道是近期面经原题(随便一搜AWS就有)

2017-12-12
设计一个停车场,后面不停的加了一些需求,例如两个入口,两个出口怎么设计, 怎么handle两辆车同时进入的 或同时出来的情况, 用个lock, 把数量lock住,一个一个更新
亚麻 电面

时间:2018-1-6
职位:
要求实现一个关注topic的功能
public interface iSubscriber {
    // Subscribes a user to a given topic. visit 1point3acres.com for more.
    public void subscribe(Integer userId, String topic);
    // Returns all the users who have subscribed to a given topic so far. From 1point 3acres bbs
    public List<Integer> getSubscribers(String topic);
}

public class Demo implements iSubscriber{
    List<Integer> ids;
    HashMap<String, List<Integer>> data;

    Demo(){
        ids = new ArrayList<Integer>();-google 1point3acres
        data = new HashMap<String, List<Integer>>();
    }
    public void subscribe(Integer userId, String topic){-google 1point3acres
        if(topic.isEmpty()){
            return;
        }
        // if is a topic 
        List<Integer> temp;
        if(data.get(topic)!=null){
            temp = new ArrayList<Integer>();
        }else{
            temp = data.get(topic);
        }
        // if the user is already subscribed
        if(!temp.contains(userId)){
            temp.add(userId);
        }
        data.put(topic, temp);
    }
    
    public List<Integer> getSubscribers(String topic){
        return data.get(topic);
    }
}

demo.subscribe(123, "abc")
demo.subscribe(123, "abc")
demo.getSubscribes // verify that it only has 1 userId "123"

demo.subscribe(123, "");

//demo.subscribe(0, "aaaa");. from: 1point3acres.com/bbs 
demo.subscribe("1.1", "aaaa");
demo.subscribe(0, 123);
// SQL injection part
demo.subscribe(0, "'; select * from any_table;");
// XSS part
demo.subscribe(0, "'<src=javascript> alert(''); </src>");

Follow up: 如果说topic有几个sub topic,你怎么实现
"Basketball"
"Basketball.Bulls"
"Basketball.Warriors"
"Basketball.Bucks" 
"Basketball.Bucks.Middleton"
"Basketball.Bucks.Delly"
1. 输入一个二维矩阵,由0和1组成,每个row开始总是连续的0,可能在某一个index后面又突然全变成了1,输出拥有最多1的row的index。
例如输入为:
[[0, 0, 0],
[0, 1, 1],
[0, 0, 1]]

则输出为:
1

Follow up是输出所有的1最多的row的index,也就是list of index of row
2. OOD,设计一个停车场,写了class的框架和重要methods
3. 问问题
1. Return true if the string is a palindrome or an anagram of palindrome. False otherwise. 
anagram的意思是字母的任意组合, "aba" == "aab" == "baa"。
例子:"aba" => true, "aab" => true, "abc" => false

2. Tranform string a to string b with minimum edits/costs.
只能进行add和remove
例子: "aba" -> "abc" => 2(remove a, add c). 
亚麻电面
1. 利口 衣领散   解释面向对象里的多态和继承

2. 利口 衣舞衣
    举个依据客户反馈改进产品的例子.
2017-6-22
螺旋矩阵
2017-6-28
wordladder2
tech:LC 而思,mysql left join 和 join 区别
BQ: 介绍自己, 介绍相关经历
时间很短,白人小哥人很好
2017-5-26
面试官:一个在五年工作的senior,考了Least Frequent Used, 没有写对。
然后问了cs基础概念:interface vs abstract class, 实际code中用过什么desig pattern, unix command find vs grep

上一篇下一篇

猜你喜欢

热点阅读