回复: 0
跳转到指定楼层
上一主题 下一主题
收起左侧

亚麻内部换组面经第一轮

全局:

2021(1-3月) 码农类General 本科 全职@amazon - Other - 在线笔试 视频面试  | | Other | 在职跳槽

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

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

x
楼主很久没来地里发过贴了, 分享个亚麻内部换组面经吧
这烙印问了足足40分钟LP 只给我20分钟来答题 巨坑爹 这种组不去也好。。。
欢迎大家来帮我 deb
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
other number
//....

my code:


  1. class Card{
  2.     int number;
  3.     String color;
  4.    
  5.     public Card(int number, String color){
  6.         this.number = number;
  7.         this.color = color;
  8.     }
  9. }


  10. class Player{
  11.        
  12. // number map and freq
  13.     HashMap<Integer, Integer> countNum = new HashMap<>();
  14.     HashMap<String, Integer> countColor = new HashMap<>();
  15.    
  16.     Card[] cards;
  17.     Character name;
  18.     public Player(char name, Card[] cards) {
  19.      this.cards=cards;
  20.      this.name=name;
  21.     }
  22.    
  23.     public void updateCounts() {
  24.      for(Card card: cards) {
  25.       if(!countNum.containsKey(card.number)) {
  26.        countNum.put(card.number, 1);
  27.       } else {
  28.        countNum.put(card.number, countNum.get(card.number)+1);
  29.       }
  30.       
  31.       
  32.       if(!countColor.containsKey(card.color)) {
  33.        countColor.put(card.color, 1);
  34.       } else {
  35.        countColor.put(card.color, countColor.get(card.color)+1);
  36.       }
  37.      }
  38.     }
  39. }


  40. public class BoardGame {
  41.    
  42.     // 1 winner / 1+ winners ?
  43.     List<Character> winners=new ArrayList<>();
  44.     int[] nums = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
  45.     String[] colors = { "R", "G", "B"};
  46.     Random rand = new Random();
  47.     Player[] players;
  48.    
  49.    
  50.     public BoardGame(int num_player){
  51.         players = new Player[num_player];
  52.         int i=0;
  53.         // initiate player and hands
  54.         while(i<num_player){
  55.             char playerName= (char)i;
  56.             Card[] hands = generateCards();
  57.             
  58.             players[i] = new Player(playerName, hands);
  59.             players[i].updateCounts();
  60.             
  61.             i++;
  62.         }
  63.     }
  64.    
  65.     public List<Character> StartGame(){
  66.         while(winners.size()==0){
  67.             // play the game by distribute card and check winner
  68.          play();
  69.          winners = CheckWinners();
  70.         }
  71.         
  72.         return winners;
  73.     }
  74.    
  75.     // generate hand of three cards
  76.     public Card[] generateCards(){
  77.         Card[] hand = new Card[3];
  78.         int i=0;
  79.         while(i<3){
  80.             Card newCard = new Card(nums[rand.nextInt(nums.length)], colors[rand.nextInt(colors.length)]);
  81.             hand[i]=newCard;
  82.             i++;
  83.         }
  84.         
  85.         return hand;
  86.     }
  87.    
  88.    
  89.     public void play() {
  90.      // generate cards for each player and check win
  91.      for(Player p: players) {
  92.       p.cards = generateCards();
  93.       p.updateCounts();
  94.      }
  95.      
  96.     }
  97.    
  98.     public List<Character> CheckWinners() {
  99.      // more than one winner or one winner ?
  100.      List<Character> winners = new ArrayList<>();
  101.      for(Player p: players) {
  102.       
  103.       for(Integer number: p.countNum.keySet()) {
  104.        if(p.countNum.size()==2 || p.countNum.get(number)==p.cards.length) {
  105.         winners.add(p.name);
  106.        }
  107.       
  108.       }
  109.       
  110.       for(String color: p.countColor.keySet()) {
  111.        if(p.countColor.get(color)==p.cards.length) {
  112.         winners.add(p.name);
  113.        }
  114.       }
  115.      }
  116.      return winners;
  117.     }
  118.    
  119.    
  120.     public static void main(String[] args) {
  121.   BoardGame instance = new BoardGame(3);
  122.   
  123.   List<Character> winners = instance.StartGame();
  124.   
  125. }
  126.        

  127. }
复制代码

评分

参与人数 2大米 +3 收起 理由
enough10103 + 2 给你点个赞!
cuzn + 1 很有用的信息!

查看全部评分


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

本版积分规则

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