求PDD网上笔试编程题第三题的截图,随便求好的解答。

求PDD网上笔试编程题第三题的截图,输入是啥样的我想不起来了,随便求好的解答。
全部评论
抢劫那道题吗
点赞 回复 分享
发布于 2019-03-11 10:17
为什么这题的位置已经是排好序的,很多人给的题解还是要先排序位置
点赞 回复 分享
发布于 2019-03-11 10:22
import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n; long d; n = scanner.nextInt(); d = scanner.nextLong(); Bank [] banks = new Bank [n]; for (int i = 0; i < n; i++) { long a = scanner.nextLong(); long b = scanner.nextLong(); banks[i] = new Main.Bank(a,b); } //按钱逆排序,钱最多的在最前面,之后只要从最前面往后开始找符合距离d的就行 Arrays.sort(banks, Comparator.comparingLong(o -> -1*o.money)); long res = 0; for (int i = 0; i < banks.length; i++) { for (int j = i+1; j < banks.length; j++) { if (Math.abs(banks[j].position - banks[i].position) >= d) { res = Math.max(res, banks[i].money + banks[j].money); break; //因为是按钱逆序的,所以最先找到的就是最大的 } } } System.out.println(res); scanner.close(); } static class Bank{ private long position; private long money; public Bank() { super(); } public Bank(long position, long money) { super(); this.position = position; this.money = money; } } }
点赞 回复 分享
发布于 2019-03-11 18:32

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务