123
返回列表 发新帖
楼主: vinoblade
跳转到指定楼层
上一主题 下一主题
收起左侧

11.9新鲜google电面

🔗
zjh08177 2015-11-18 09:11:25 | 只看该作者
全局:
longest increasing value sequence 都变成warm up的题了T^T,第二题通懵逼
回复

使用道具 举报

🔗
c212014 2015-11-19 04:53:41 | 只看该作者
全局:
lz有消息了吗
回复

使用道具 举报

🔗
bobzhang2004 2015-12-6 04:31:18 | 只看该作者
全局:
vinoblade 发表于 2015-11-10 08:21
不是特别好描述,简单说就是要通过给的IntStream类中的方法来构建新的UnionStream类。要求实现UnionOp, ...

请问一个IntStream类怎么返回A和B两个set呢?是有两个IntSteam吗?
回复

使用道具 举报

🔗
 楼主| vinoblade 2015-12-6 04:35:42 | 只看该作者
全局:
bobzhang2004 发表于 2015-12-6 04:31
请问一个IntStream类怎么返回A和B两个set呢?是有两个IntSteam吗?

初始化的时候初始化两个对象分别返回
回复

使用道具 举报

🔗
bobzhang2004 2015-12-6 04:55:27 | 只看该作者
全局:
写了下UnionSet类欢迎指教
  1. public class UnionSet {

  2.         private IntStream A;
  3.         private IntStream B;
  4.         private Integer next;
  5.         private Integer ANext;
  6.         private Integer BNext;
  7.         public UnionSet(int[] Aarr, int[] Barr) {
  8.                 A = new IntStream(Aarr);
  9.                 B = new IntStream(Barr);
  10.                 next = null;
  11.         }
  12.        
  13.         public boolean hasNext() {
  14.                 if (ANext == null && BNext == null && !A.hasmore() && !B.hasmore() && next == null) {
  15.                         return false;
  16.                 }
  17.                
  18.                 return true;
  19.         }
  20.         public static void main(String[] args) {
  21.                 int[] Aarr = {1,2,3, 5};
  22.                 int[] Barr = {1,4,5,6};
  23.                 UnionSet us = new UnionSet(Aarr, Barr);
  24.                 while (us.hasNext()) {
  25.                         System.out.println(us.next());
  26.                 }
  27.         }
  28.        
  29.         public void unionOp() {
  30.                 if (next == null) {
  31.                         if (ANext == null && !A.hasmore()) {
  32.                                 next = B.next();
  33.                                 return;
  34.                         }
  35.                         if (BNext == null && !B.hasmore()) {
  36.                                 next = A.next();
  37.                                 return;
  38.                         }
  39.                         if (ANext == null) {
  40.                                 ANext = A.next();
  41.                         }
  42.                         if (BNext == null) {
  43.                                 BNext = B.next();
  44.                         }
  45.                         if (ANext < BNext) {
  46.                                 next = ANext;
  47.                                 ANext = null;
  48.                         } else if (ANext > BNext){
  49.                                 next = BNext;
  50.                                 BNext = null;
  51.                         } else {
  52.                                 next = ANext;
  53.                                 ANext = null;
  54.                                 BNext = null;
  55.                         }
  56.                 }
  57.         }
  58.        
  59.         public int next() {
  60.                 unionOp();
  61.                 int res = next;
  62.                 next = null;
  63.                 return res;
  64.         }
  65.        
  66.         class IntStream {
  67.                 private int[] arr;
  68.                 private int pos;
  69.                 public IntStream(int[] arr) {
  70.                         this.arr = arr;
  71.                         pos = 0;
  72.                 }
  73.                
  74.                 public int next() {
  75.                         return arr[pos++];
  76.                 }
  77.                 public boolean hasmore() {
  78.                         return pos < arr.length;
  79.                 }
  80.         }
  81. }
复制代码
回复

使用道具 举报

🔗
sooorrr 2015-12-6 05:14:24 | 只看该作者
全局:
vinoblade 发表于 2015-11-10 11:28
想了一下,应该可以先计算所有点连成的线的中点,然后依次判断计算两两中点连成的线是不是symmetry line。 ...

任意一点,只可能与另外n-1个点的莫一个点对称,那么就有n-1可能的line,然后O(n)的时间验证一条line,时间复杂度O(n^2)
回复

使用道具 举报

🔗
cszeus 2015-12-6 06:05:55 | 只看该作者
全局:
yimingzi 发表于 2015-11-10 11:15
所以枚举所有的点..O(n^2)..

同意这个暴力的方法
回复

使用道具 举报

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

本版积分规则

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