今日头条编程题1 找"最大"点
2018-03-27 00:23
260 查看
P为给定的二维平面整数点集。定义 P 中某点x,如果x满足 P 中任意点都不在 x 的右上方区域内(横纵坐标都大于x),则称其为“最大的”。求出所有“最大的”点的集合。(所有点的横坐标和纵坐标都不重复, 坐标轴范围在[0, 1e9) 内)
如下图:实心点为满足条件的点的集合。请实现代码找到集合 P 中的所有 ”最大“ 点的集合并输出。
输入描述:
第一行输入点集的个数 N, 接下来 N 行,每行两个数字代表点的 X 轴和 Y 轴。
对于 50%的数据, 1 <= N <= 10000;
对于 100%的数据, 1 <= N <= 500000;
输出描述:
输出“最大的” 点集合, 按照 X 轴从小到大的方式输出,每行两个数字分别代表点的 X 轴和 Y轴。
输入例子1:
5
1 2
5 3
4 6
7 5
9 0
输出例子1:
4 6
7 5
9 0
思路是先按照x轴升序排序
然后从后往前遍历所有的点,不断更新y最大的值,如果当前点超过y最大值,则将点入栈,并更新y最大值。
然后依次出栈就是结果了
如下图:实心点为满足条件的点的集合。请实现代码找到集合 P 中的所有 ”最大“ 点的集合并输出。
输入描述:
第一行输入点集的个数 N, 接下来 N 行,每行两个数字代表点的 X 轴和 Y 轴。
对于 50%的数据, 1 <= N <= 10000;
对于 100%的数据, 1 <= N <= 500000;
输出描述:
输出“最大的” 点集合, 按照 X 轴从小到大的方式输出,每行两个数字分别代表点的 X 轴和 Y轴。
输入例子1:
5
1 2
5 3
4 6
7 5
9 0
输出例子1:
4 6
7 5
9 0
思路是先按照x轴升序排序
然后从后往前遍历所有的点,不断更新y最大的值,如果当前点超过y最大值,则将点入栈,并更新y最大值。
然后依次出栈就是结果了
public static void main(String[] args) { List<Point> points = new ArrayList<>(); Scanner scanner = new Scanner(System.in); int nums = scanner.nextInt(); for (int i = 0; i < nums; i++) { int x = scanner.nextInt(); int y = scanner.nextInt(); Point point = new Point(x,y); points.add(point); } Collections.sort(points, new Comparator<Point>() { @Override public int compare(Point o1, Point o2) { return o1.x - o2.x; } }); int maxy = -1; Stack<Point> stack = new Stack<>(); for (int i = points.size() - 1; i >= 0 ; i--) { if(points.get(i).y > maxy) { stack.push(points.get(i)); maxy = points.get(i).y; } } while (!stack.empty()) { Point p = stack.pop() 4000 ; System.out.println(p.x + " " + p.y); } }
相关文章推荐
- 今日头条2018校招测试开发方向(第一、二、三、四批)编程题汇总 - 题解
- 今日头条8/23第一道编程题
- 今日头条2017秋季校招在线编程题解法参考
- 今日头条最大点问题
- 阿里与俄最大银行谈判破裂;今日头条就咏宁事件起诉新浪;谷歌成立AI中国中心丨价值早报
- 今日头条2018春季校园招聘研发岗位笔试编程题2
- 今日头条——校招在线编程题《字典序》
- 今日头条2018春季校园招聘研发岗位笔试编程题1
- 今日头条2018春季校园招聘研发岗位笔试编程题4
- 今日头条校招2016-09-28在线编程题(2题)
- 将字符串编码成数值,求数值最大和问题(今日头条笔试题)
- 今日头条笔试【编程题 + 分析过程发现数学规律 + 回溯法】
- 今日头条2017后端工程师实习生笔试题——最大映射
- 今日头条2017暑期实习生招聘笔试编程题之函数最宽尖峰
- 将字符串编码成数值,求数值最大和问题(今日头条笔试题)
- 【算法题】2018今日头条编程题一
- 今日头条 2017年秋招编程题 :“最大乘积和”
- 牛客网--今日头条2018校招算法方向(第一批)编程题1、编程题2
- 2017今日头条测试编程题
- 怎么实现类似"今日头条"app