一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 1198|回复: 3
收起左侧

Uber 电面 目测是跪了。。。

[复制链接] |试试Instant~ |关注本帖
starcroce_1p3 发表于 2015-12-18 07:52:33 | 显示全部楼层 |阅读模式

2015(10-12月) 码农类 硕士 全职@Uber - 内推 - 技术电面 |Other在职跳槽

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

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

x
sigh 目测是跪了。。。
第一题是买卖股票1,两分钟写完

.1point3acres缃第二题是sort a deck of card,要求比nlogn更快,然后想法就是根据花色和大小确定牌应该在的位置,然后swap,比如一张牌suite a,rank b,那么它应该在 a*13+b 的位置上。。。然后lz就傻逼了,换回来的之后直接 i++了。。。应该继续判断是否要交换牌直到该位置的牌正确为止。。。.1point3acres缃

泪奔了。。。

本帖被以下淘专辑推荐:

windream1991 发表于 2015-12-21 03:35:39 | 显示全部楼层
应该可以用桶排序o(n)解决
回复 支持 反对

使用道具 举报

jygan 发表于 2016-1-2 13:21:58 | 显示全部楼层
sort a deck of card那题可以用 bucket sort
回复 支持 反对

使用道具 举报

bobzhang2004 发表于 2016-1-12 00:29:03 | 显示全部楼层
写了写第二题代码. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  1. public class SortDeckOfCard {
  2.         static class Card {
  3.                 int suite;
  4.                 int rank;

  5.                 public Card(int suite, int rank) {
  6.                         this.suite = suite;
  7.                         this.rank = rank;
  8.                 }. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  9.         }

  10.         public static void sortDeckOfCard(Card[] cards) {
  11.                 if (cards == null || cards.length == 0) {
  12.                         return;
  13.                 }
  14.                 for (int i = 0; i < cards.length;) {
  15.                         int index = cards[i].suite * 13 + cards[i].rank;
  16.                         if (index >= 0 && index < 52
  17.                                         && (cards[index].suite * 13 + cards[index].rank != index)) {
  18.                                 Card tmp = cards[index];
  19.                                 cards[index] = cards[i];
  20.                                 cards[i] = tmp;
  21.                         } else {
  22.                                 i++;. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  23.                         }
  24.                 }
  25.         }

  26.         public static void main(String[] args) {
  27.                 Card[] cards = new Card[52];
  28.                 for (int i = 0; i < 4; i++) {
  29.                         for (int j = 0; j < 13; j++) {
  30.                                 cards[51 - i * 13 - j] = new Card(i, j);
  31.                         }
  32.                 }.1point3acres缃
  33.                 for (int i = 0; i < 52; i++) {
  34.                         System.out.print((cards[i].suite * 13 + cards[i].rank) + " ");
  35.                 }
  36.                 System.out.println();. Waral 鍗氬鏈夋洿澶氭枃绔,
  37.                 sortDeckOfCard(cards);
  38.                 for (int i = 0; i < 52; i++) {.1point3acres缃
  39.                         System.out.print((cards[i].suite * 13 + cards[i].rank) + " ");
  40.                 }.鏈枃鍘熷垱鑷1point3acres璁哄潧
  41.         }
  42. }. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
复制代码
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

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

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2017-1-19 08:07

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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