传说中的谷歌招聘委员会成员之一,从幕后走出来,教你学系统设计!


一亩三分地论坛

 找回密码
 获取更多干活,快来注册
天天打游戏、照样领工资、还办H1B
这份工作你要不要?
把贵司招聘信息放这里
查看: 1276|回复: 0
收起左侧

indeed OA #17

[复制链接] |试试Instant~ |关注本帖
butterwang 发表于 2015-12-22 11:06:02 | 显示全部楼层 |阅读模式

2015(10-12月) 码农类 博士 全职@Indeed - 网上海投 - 在线笔试 |Otherfresh grad应届毕业生

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

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

x
题目和版上看到的都一样。calculating quantiles. .鏈枃鍘熷垱鑷1point3acres璁哄潧
以前有人贴出题目的截图了,这里就不说了。
. 1point 3acres 璁哄潧
贴出我的代码,7个test case 全过了。
  1. import java.io.*;
  2. import java.util.*;
  3. . 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  4. public class Solution {
  5.     public static void main(String[] args) {
  6.         Scanner scanner = new Scanner(System.in);
  7.         long Q = scanner.nextInt();
  8.         int M = scanner.nextInt();. visit 1point3acres.com for more.

  9.         long N = 0;-google 1point3acres
  10.         Pair[] pairs = new Pair[M];

  11.         for (int i = 0; i < M; i++) {
  12.             int v = scanner.nextInt();
  13.             long c = (long) scanner.nextInt();
  14.             
  15.             N += c;

  16.             Pair pair = new Pair(v, c);

  17.             pairs[i] = pair;.鐣欏璁哄潧-涓浜-涓夊垎鍦
  18.         }

  19.         // sort the array according to the vi
    . 鍥磋鎴戜滑@1point 3 acres
  20.         Arrays.sort(pairs, new MyPairComparator());

  21.         // Calculate the accmulated count. Waral 鍗氬鏈夋洿澶氭枃绔,
  22.         for (int i = 1; i < M; i++) {. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  23.             pairs[i].count += pairs[i - 1].count;
  24.         }

  25.         // Find all the quantiles
  26.         List<Integer> result = findQuantiles(N, Q, pairs);

  27.         for (Integer num : result) {
  28.             System.out.println(num);
  29.         }

  30.         scanner.close();
  31.     }

  32.     public static List<Integer> findQuantiles(long N, long Q, Pair[] pairs) {. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  33.         List<Integer> result = new ArrayList<>();

  34.         if (N <= 0 || Q <= 1 || pairs == null || pairs.length == 0) {. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  35.             return result;
  36.         }
    .鏈枃鍘熷垱鑷1point3acres璁哄潧

  37. . 1point3acres.com/bbs
  38.         // Find the i-th quantile
  39.         for (long i = 1; i < Q; i++) {
  40.             long index = (long) Math.ceil((double) N * i / Q);. from: 1point3acres.com/bbs

  41.             int quantile = binarySearch(pairs, index);
  42.             result.add(quantile);
  43.         }. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  44. . Waral 鍗氬鏈夋洿澶氭枃绔,
  45.         return result;
  46.     }

  47.     // If it can find the target, return the value with the index of the target. from: 1point3acres.com/bbs
  48.     // Otherwise, return the next value with the index greter than the target
  49.     private static int binarySearch(Pair[] pairs, long target) {
  50.         int lo = 0; . visit 1point3acres.com for more.
  51.         int hi = pairs.length - 1;

  52.         while (lo + 1 < hi) {
  53.             int mid = lo + (hi - lo) / 2;. 鍥磋鎴戜滑@1point 3 acres
  54.             if (pairs[mid].count == target) {. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  55.                 return pairs[mid].value;
  56.             } else if (pairs[mid].count > target) {
  57.                 hi = mid;. Waral 鍗氬鏈夋洿澶氭枃绔,
  58.             } else {
  59.                 lo = mid;
  60.             }. From 1point 3acres bbs
  61.         }

  62.         if (pairs[lo].count >= target) {
  63.             return pairs[lo].value;
  64.         } else {. 1point3acres.com/bbs
  65.             return pairs[hi].value;
  66.         }
  67.     }

  68.     static class Pair {
  69.         int value;
  70.         long count;

  71.         public Pair(int value, long count) {
  72.             this.value = value;. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  73.             this.count = count;
  74.         }
  75.     }
  76. -google 1point3acres
  77.     static class MyPairComparator implements Comparator<Pair> {
  78.         @Override
  79.         public int compare(Pair a, Pair b) {. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  80.             return a.value - b.value;
  81.         } 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  82.     }
  83. }
复制代码

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-9-25 16:13

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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