聊聊在私立文理读cs的两年感受

一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
E轮2.5亿美元融资
K12教育独角兽一起作业
北京-诚聘人工智能/教育/大数据岗
坐标湾区
Games Startup
招聘游戏开发工程师
游戏初创公司招聘工程师、UIUX Designer和游戏策划
码农求职神器Triplebyte:
不用海投
内推多家公司面试
把贵司招聘信息放这里
查看: 3256|回复: 4
收起左侧

24点

[复制链接] |试试Instant~ |关注本帖
bobzhang2004 发表于 2016-4-2 22:54:51 | 显示全部楼层 |阅读模式

2016(1-3月) 码农类General 硕士 全职@Google - 内推 - HR筛选  | Other | 其他

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

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

x
一道面经中经常出现的题-google 1point3acres
coding一道 类似24点。 题目是给一组integer 问可否用加减乘除使结果等于某个target。比如{1,50,3,6,7},target=60 结果是true 50+6/3+1+7=60
这个是要用recursion来枚举吗?. more info on 1point3acres
adiggo 发表于 2016-4-3 02:27:50 | 显示全部楼层
所有数字必须用到么
回复 支持 0 反对 1

使用道具 举报

 楼主| bobzhang2004 发表于 2016-4-3 01:54:05 | 显示全部楼层
  1. public class TwentyFour {. 1point3acres

  2.         public static void main(String[] args) {
  3.                 TwentyFour tf = new TwentyFour();
  4.                 int[] arr = { 1, 50, 3, 6, 7 };
  5.                 System.out.println(tf.canGetTwentyFour(arr, 60));
  6.         }. Waral 博客有更多文章,

  7.         public boolean canGetTwentyFour(int[] arr, int target) {
  8.                 if (arr == null || arr.length == 0) {
  9.                         return false;
  10.                 }. 留学申请论坛-一亩三分地
  11.                 Arrays.sort(arr);
  12.                 boolean[] visited = new boolean[arr.length];
  13.                 List<List<Integer>> lists = new ArrayList<List<Integer>>();.1point3acres网
  14.                 getPermutation(lists, new ArrayList<Integer>(), arr, visited);

  15.                 for (List<Integer> candidate : lists) {
  16.                         List<Integer> list = helper(candidate, target, 0, arr.length - 1);. 1point 3acres 论坛
  17.                         for (int i : list) {
  18.                                 if (i == target) {
  19.                                         return true;
  20.                                 }
  21.                         }
  22.                 }
  23.                 return false;
  24.         }

  25.         private void getPermutation(List<List<Integer>> lists,
  26.                         ArrayList<Integer> list, int[] arr, boolean[] visited) {
  27.                 if (list.size() == arr.length) {
  28.                         lists.add(new ArrayList<Integer>(list));
  29.                         return;
  30.                 } 来源一亩.三分地论坛.
  31.                 for (int i = 0; i < arr.length; i++) {. from: 1point3acres
  32.                         if (visited[i] || i > 0 && arr[i] == arr[i - 1] && !visited[i - 1]) {
  33.                                 continue;
  34.                         }
  35.                         visited[i] = true;
  36.                         list.add(arr[i]);
  37.                         getPermutation(lists, list, arr, visited);. 牛人云集,一亩三分地
  38.                         list.remove(list.size() - 1);
  39.                         visited[i] = false;. From 1point 3acres bbs
  40.                 }
  41.         }

  42.         private List<Integer> helper(List<Integer> arr, int target, int start,
  43.                         int end) {
  44.                 List<Integer> res = new ArrayList<Integer>();
  45.                 if (start > end) {
  46.                         return res; 来源一亩.三分地论坛.
  47.                 }
  48.                 if (start == end) {
  49.                         res.add(arr.get(start));
  50.                         return res;
  51.                 }

  52.                 for (int i = start; i < end; i++) {. 留学申请论坛-一亩三分地
  53.                         List<Integer> left = helper(arr, target, start, i);
  54.                         List<Integer> right = helper(arr, target, i + 1, end);. 1point 3acres 论坛
  55.                         for (int l : left) {
  56.                                 for (int r : right) {
  57.                                         res.add((l + r));
  58.                                         res.add((l * r));
  59.                                         if (r != 0) {
  60.                                                 res.add((l / r));
  61.                                         }
  62.                                         res.add((l - r));-google 1point3acres
  63.                                 }
  64.                         }
  65.                 }
  66.                 return res;.本文原创自1point3acres论坛
  67.         }. from: 1point3acres
  68. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| bobzhang2004 发表于 2016-4-3 02:31:06 | 显示全部楼层
adiggo 发表于 2016-4-3 02:27
所有数字必须用到么

应该是的,并且顺序不一定
回复 支持 反对

使用道具 举报

jy_121 发表于 2016-4-27 05:21:39 | 显示全部楼层
除了枚举出所有情况还有其他做法吗?
回复 支持 反对

使用道具 举报

本版积分规则

提醒:发帖可以选择内容隐藏,部分板块支持匿名发帖。请认真读完以下全部说明:

■隐藏内容方法: [hide=200]你想要隐藏的内容比如面经[/hide]
■意思是:用户积分低于200则看不到被隐藏的内容
■可以自行设置积分值,不建议太高(200以上太多人看不到),也不建议太低(那就没必要隐藏了)
■建议只隐藏关键内容,比如具体的面试题目、涉及隐私的信息,大部分内容没必要隐藏。
■微信/QQ/电子邮件等,为防止将来被骚扰甚至人肉,以论坛私信方式发给对方最安全。
■匿名发帖的板块和方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

关闭

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

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

custom counter

GMT+8, 2018-5-21 23:26

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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