【编程题m_0020】牛牛找工作 3ff8
2018-05-14 22:35
162 查看
链接:https://www.nowcoder.com/questionTerminal/46e837a4ea9144f5ad2021658cb54c4d
来源:牛客网
为了找到自己满意的工作,牛牛收集了每种工作的难度和报酬。牛牛选工作的标准是在难度不超过自身能力值的情况下,牛牛选择报酬最高的工作。在牛牛选定了自己的工作后,牛牛的小伙伴们来找牛牛帮忙选工作,牛牛依然使用自己的标准来帮助小伙伴们。牛牛的小伙伴太多了,于是他只好把这个任务交给了你。
输入描述:
输出描述:
示例1
解题思路:对于输入的工作难度和报酬均按升序排序,然后计算当前工作难度下,最多的报酬是多少。
来源:牛客网
为了找到自己满意的工作,牛牛收集了每种工作的难度和报酬。牛牛选工作的标准是在难度不超过自身能力值的情况下,牛牛选择报酬最高的工作。在牛牛选定了自己的工作后,牛牛的小伙伴们来找牛牛帮忙选工作,牛牛依然使用自己的标准来帮助小伙伴们。牛牛的小伙伴太多了,于是他只好把这个任务交给了你。
输入描述:
每个输入包含一个测试用例。 每个测试用例的第一行包含两个正整数,分别表示工作的数量N(N<=100000)和小伙伴的数量M(M<=100000)。 接下来的N行每行包含两个正整数,分别表示该项工作的难度Di(Di<=1000000000)和报酬Pi(Pi<=1000000000)。 接下来的一行包含M个正整数,分别表示M个小伙伴的能力值Ai(Ai<=1000000000)。 保证不存在两项工作的报酬相同。
输出描述:
对于每个小伙伴,在单独的一行输出一个正整数表示他能得到的最高报酬。一个工作可以被多个人选择。
示例1
输入
3 3 1 100 10 1000 1000000000 1001 9 10 1000000000
输出
100 1000 1001
解题思路:对于输入的工作难度和报酬均按升序排序,然后计算当前工作难度下,最多的报酬是多少。
package BiShiTi; import java.util.*; public class m_0020 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int N = scan.nextInt(); int M = scan.nextInt(); int [][] dp = new int [2]; for (int i = 0; i < N; i++) { int Di = scan.nextInt(); int Pi = scan.nextInt(); dp[i][0] = Di; dp[i][1] = Pi; } Arrays.sort(dp, new Comparator<int[]>() { // 第一列升序,第二列也是升序 public int compare(int [] o1, int [] o2) { if (o1[0] == o2[0]) { return o1[1] - o2[1]; }else{ return o1[0] - o2[0]; } } }); TreeMap<Integer, Integer> DP = new TreeMap<>(); DP.put(dp[0][0], dp[0][1]); for (int i = 1; i < N; i++) { int Di = dp[i][0]; int Pi = dp[i][1]; // 即便存在key相同的也不影响 int v = DP.lastEntry().getValue(); DP.put(Di, v>Pi?v:Pi); } for (int i = 0; i < M; i++) { int Ai = scan.nextInt(); if (null == DP.floorKey(Ai)) { System.out.println(0); }else { System.out.println(DP.get(DP.floorKey(Ai))); } } } }
相关文章推荐
- 网易2018春招笔试编程题:牛牛找工作
- [编程题]牛牛找工作
- [编程题] 牛牛找工作
- 牛牛找工作--网易2019实习生招聘编程题
- 网易笔试编程题:牛牛找工作
- 牛牛找工作
- 网易2019:牛牛找工作
- 【编程题m_0018】大数相乘 3ff8
- 网易前端笔试编程题——迷路的牛牛
- [编程题] 迷路的牛牛
- 【编程题】 黑化的牛牛
- [编程题] 黑化的牛牛
- [编程题]迷路的牛牛
- 牛客网 [编程题] 牛牛的数列 (DP)
- 【编程题】 膨胀的牛牛
- [编程题] 膨胀的牛牛
- 【编程题m_0030】电话号码 3ff8 分身(小米2017秋招真题)
- 牛客网牛牛换瓷砖的编程题
- 牛客网牛牛求最长DNA片段的编程题
- 找工作中遇到的各种编程题