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

GOOGLE 4/14 电面

🔗
Eclat 2016-4-19 10:37:38 | 只看该作者
全局:
如果各种方向都可以走的话,而且Android lock screen不是如果已经走了一个点,再路过它的时候就不算了么,这样的话,总的pattern数不是C(4,9) *A(4,4) +C(5, 9) * A(5,5) + C(6, 9)*A(6,6) + C(7,9)*A(7,7) + C(8,9)*A(8,8) + C(9,9)*A(9,9) ?
回复

使用道具 举报

🔗
 楼主| Hualiang 2016-4-19 11:01:42 | 只看该作者
全局:
不可以跳着走的
回复

使用道具 举报

🔗
oh_yee 2016-4-19 11:56:59 | 只看该作者
全局:
您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
回复

使用道具 举报

🔗
kiviljc 2016-4-19 21:58:21 | 只看该作者
全局:
Fustang 发表于 2016-4-15 10:09
不仅是相邻的方向
还可以diag move(斜线)和knight move(日字)
以及jump已经lit的点

肯定是8个方向,,,玩下安卓解锁就都知道了。
回复

使用道具 举报

🔗
snakefly 2016-4-19 22:21:03 | 只看该作者
全局:
如果没有限制的话,感觉是permutationd的变种

如果不能夸数字, 比如1 不能到 3, 4, 9的话, 要把1,3,7,9单独拿出来考虑。。。额 这个思路感觉还挺复杂的。

123
456
789

补充内容 (2016-4-19 22:21):
1 不能到3, 7 , 9
回复

使用道具 举报

🔗
laoxie09 2016-4-20 00:30:47 | 只看该作者
全局:
组合数学题啊……
回复

使用道具 举报

🔗
jy_121 2016-4-20 01:04:44 | 只看该作者
全局:
电面考这个太难了吧。。。
回复

使用道具 举报

🔗
杰西Jesse 2016-5-4 03:14:45 | 只看该作者
全局:
  1. package google;

  2. import java.util.*;

  3. public class AndroidKeyBoard {
  4.         char[][] board = { { '1', '2', '3' }, { '4', '5', '6' }, { '7', '8', '9' } };

  5.         public List<String> generate() {
  6.                 // Set<String> result = new HashSet<String>();
  7.                 List<String> result = new ArrayList<>();
  8.                 for (int i = 0; i < board.length; i++) {
  9.                         for (int j = 0; j < board[0].length; j++) {
  10.                                 helper(result, "", i, j);
  11.                         }
  12.                 }
  13.                 System.out.println(result.size());
  14.                 return result;
  15.         }

  16.         private void helper(List<String> result, String temp, int x, int y) {
  17.                 if (x < 0 || y < 0 || x >= board.length || y >= board[0].length
  18.                                 || board[x][y] == '*')
  19.                         return;

  20.                 char t = board[x][y];

  21.                 temp += board[x][y];
  22.                 if (temp.length() >= 4) {
  23.                         result.add(temp);
  24.                 }

  25.                 board[x][y] = '*';
  26.                 helper(result, temp, x - 1, y + 1);

  27.                 // 8 directional
  28.                 helper(result, temp, x - 1, y - 1);
  29.                 helper(result, temp, x - 1, y);
  30.                 helper(result, temp, x, y - 1);
  31.                 helper(result, temp, x, y + 1);
  32.                 helper(result, temp, x + 1, y + 1);
  33.                 helper(result, temp, x + 1, y);
  34.                 helper(result, temp, x + 1, y - 1);

  35.                 // cross!
  36.                 helper(result, temp, x - 2, y - 1);
  37.                 helper(result, temp, x + 2, y - 1);
  38.                 helper(result, temp, x - 2, y + 1);
  39.                 helper(result, temp, x + 2, y + 1);

  40.                 helper(result, temp, x + 1, y - 2);
  41.                 helper(result, temp, x - 1, y - 2);
  42.                 helper(result, temp, x + 1, y + 2);
  43.                 helper(result, temp, x - 1, y + 2);

  44.                 // allow jump
  45.                 if (x + 1 < board.length && board[x + 1][y] == '*')
  46.                         helper(result, temp, x + 2, y);
  47.                 if (y + 1 < board[0].length && board[x][y + 1] == '*')
  48.                         helper(result, temp, x, y + 2);
  49.                 if (x > 0 && board[x - 1][y] == '*')
  50.                         helper(result, temp, x - 2, y);
  51.                 if (y > 0 && board[x][y - 1] == '*')
  52.                         helper(result, temp, x, y - 2);
  53.                 if (x > 0 && y > 0 && board[x - 1][y - 1] == '*')
  54.                         helper(result, temp, x - 2, y - 2);
  55.                 if (x + 1 < board.length && y + 1 < board[0].length
  56.                                 && board[x + 1][y + 1] == '*')
  57.                         helper(result, temp, x + 2, y + 2);
  58.                 if (x > 0 && y + 1 < board[0].length && board[x - 1][y + 1] == '*')
  59.                         helper(result, temp, x - 2, y + 2);
  60.                 if (x + 1 < board.length && y > 0 && board[x + 1][y - 1] == '*')
  61.                         helper(result, temp, x + 2, y - 2);
  62.                 board[x][y] = t;
  63.         }

  64.         public static void main(String args[]) {
  65.                 AndroidKeyBoard android = new AndroidKeyBoard();
  66.                 android.generate();
  67.         }
  68. }
复制代码
回复

使用道具 举报

🔗
hison7463 2016-5-4 11:30:26 | 只看该作者
全局:
题意是遍历9宫格所有长度为4-9的pattern,并且点不重复?也不就是number of island的变种吗?抱歉,我看了10分钟的题目,还是看不懂。。。。
OAB
OOC
OED
请问上面这个pattern是什么意思?
回复

使用道具 举报

🔗
 楼主| Hualiang 2016-5-4 11:32:13 | 只看该作者
全局:
hison7463 发表于 2016-5-4 11:30
题意是遍历9宫格所有长度为4-9的pattern,并且点不重复?也不就是number of island的变种吗?抱歉,我看了1 ...

就是从A到E,如果AB位置对调了就是别外一个pattern
回复

使用道具 举报

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

本版积分规则

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