一亩三分地论坛

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

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

[找工就业] indeed oa #17

[复制链接] |试试Instant~ |关注本帖
nycok 发表于 2015-11-21 09:46:03 | 显示全部楼层 |阅读模式

2015(10-12月)-[14]CS硕士+fresh grad 无实习/全职 - 网上海投| 码农类全职@Indeedfresh grad应届毕业生

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

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

x
题目在这个帖子:http://www.1point3acres.com/bbs/thread-145192-1-1.html
几组test case FYI:
3
3
7 2
6 2
5 2

2
3
1 1. from: 1point3acres.com/bbs
2 3
3 1

2. from: 1point3acres.com/bbs
3 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
5 1
6 1
3 1. from: 1point3acres.com/bbs

5. 1point 3acres 璁哄潧
10
19 1
18 2
15 2
12 1
11 1. 1point 3acres 璁哄潧
8 1
6 1
5 3.鏈枃鍘熷垱鑷1point3acres璁哄潧
3 2
2 1
. Waral 鍗氬鏈夋洿澶氭枃绔,
2. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
3
4 100000000
5 100000000. 1point 3acres 璁哄潧
6 100000000

6
3. from: 1point3acres.com/bbs
1 1
2 1
3 3
. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴

我的代码(testcase都通过了):
  1. import java.io.*;.鏈枃鍘熷垱鑷1point3acres璁哄潧
  2. import java.util.*; 鏉ユ簮涓浜.涓夊垎鍦拌鍧.

  3. public class Solution {
  4.     public static class Pair implements Comparable<Pair> {
  5.         int val;
  6.         int count;
  7.         int maxidx;
  8.         int minidx;
  9.         public int getMaxidx() {
  10.             return maxidx;
  11.         }
  12.         public void setMaxidx(int maxidx) {
  13.             this.maxidx = maxidx;
  14.         }
  15.         public int getMinidx() {. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  16.             return minidx;. 鍥磋鎴戜滑@1point 3 acres
  17.         }
  18.         public void setMinidx(int minidx) {
  19.             this.minidx = minidx;
  20.         }
  21.         public Pair(int val, int count) {
  22.             this.val = val;
  23.             this.count = count;
  24.         }
  25.         public int compareTo(Pair p) {
  26.             return this.val - p.val;
  27.         }
  28.     }
  29.    
  30.     public static void main(String args[] ) throws Exception {
  31.         Scanner in = new Scanner(System.in);
  32.         int N = 0;
    .1point3acres缃
  33.         int Q = in.nextInt();
  34.         int M = in.nextInt(); 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  35.         ArrayList<Pair> pl = new ArrayList<Pair>();
  36.         for (int i = 0; i < M; ++i) {
  37.             int v = in.nextInt();
  38.             int c = in.nextInt();. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  39.             N += c;
  40.             Pair p = new Pair(v, c);
  41.             pl.add(p);
  42.         }
  43.         Collections.sort(pl); 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  44.         int tmp = 1;
  45.         for (int i = 0; i < pl.size(); ++i) {
  46.             pl.get(i).setMinidx(tmp);
  47.             pl.get(i).setMaxidx(tmp + pl.get(i).count - 1);
  48.             tmp += pl.get(i).count;
  49.         }
  50.         for (int k = 1; k < Q; ++k) {. From 1point 3acres bbs
  51.             int idx = (int)Math.ceil((double)N*k/(double)Q);. more info on 1point3acres.com
  52.             int low = 0;.1point3acres缃
  53.             int high = pl.size() - 1;
  54.             while (low <= high) {
  55.                 int mid = (low + high) / 2;
  56.                 int min = pl.get(mid).getMinidx();
  57.                 int max = pl.get(mid).getMaxidx();
  58.                 if (idx >= min && idx <= max) {
  59.                     System.out.println(pl.get(mid).val);
  60.                     break;. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  61.                 } else if (idx < min) {
  62.                     high = mid - 1;
  63.                 } else {
  64.                     low = mid + 1;
  65.                 }
  66.             }
  67.         }
  68.     }
  69. }
复制代码

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2016-12-5 08:49

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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