p为给定的二维平面整数点集。定义 p 中某点x,如果x满足 p 中任意点都不在 x 的右上方区域内(横纵坐标都大于x),则称其为“最大的”。求出所有“最大的”点的集合。(所有点的横坐标和纵坐标都不重复, 坐标轴范围在[0, 1e9) 内) 如下图:实心点为满足条件的点的集合。请实现代码找到集合 p 中的所有 ”最大“ 点的集合并输出。
时间: 2023-05-02 12:00:57 浏览: 92
二维数组求最大数
3星 · 编辑精心推荐
题目描述:给定二维平面整数点集。定义p中某点x满足p中任意点都不在x的右上方区域内(横纵坐标都大于x),则称x为p中的“最大的”点。求出所有“最大的”点的集合。(注:坐标轴范围在[0, 1e9)内)
解题思路: 根据定义,若一个点为“最大的”点,则该点右上方没有任何点。因此,只需依次遍历每个点,找到该点右上方的所有点,并判断是否满足定义即可。为了避免遍历相同的点多次,可以记录已经找到的“最大的”点,下次遇到该点时直接判断即可。
具体实现时,可以对所有点按照纵坐标从大到小排序,然后从下往上遍历每个点,并记录已经找到的“最大的”点,如果该点上方没有已经找到的“最大的”点,则将该点加入结果集中。
代码实现:
阅读全文