今日頭條程式設計題1 找"最大"點
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最大值。
然後依次出棧就是結果了
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();
System.out.println(p.x + " " + p.y);
}
}
相關文章
- 程式設計題:尋找木頭程式設計
- java程式設計師最難面試之“今日頭條”Java程式設計師面試
- 【程式設計測試題】頭條校招程式設計
- 今日頭條:iOS 架構設計雜談iOS架構
- 「前端面試題系列1」今日頭條 面試題和思路解析前端面試題
- 今日頭條正式釋出小程式
- 今日頭條怎麼設定黑色背景?今日頭條app開啟深色模式的技巧APP模式
- 今日頭條實習面試題解析面試題
- 朝夕光年——今日頭條的“遊戲據點”遊戲
- 今日頭條極速版和今日頭條有什麼區別?
- 模仿今日頭條app開發遇到的問題APP
- 今日頭條Android面試Android面試
- 今日頭條:2018今日頭條兩會閱讀大資料(附下載)大資料
- 今日頭條推薦系統架構設計實踐(附下載)架構
- thinkphp仿今日頭條原始碼PHP原始碼
- 今日頭條研發面經
- 今日頭條上央視新聞 很快今日頭條回應廣告“二跳”事件事件
- 今日頭條怎麼賺錢?頭條號的賺錢思路
- 十條不錯的程式設計觀點程式設計
- 今日頭條 Flutter 架構實踐Flutter架構
- 今日頭條技術架構分析架構
- 【今日頭條】校招內推碼
- 找兼職程式設計師程式設計師
- AI領域我重點關注的幾個今日頭條號AI
- iOS混合開發庫(GICXMLLayout)佈局案例分析(1)今日頭條案例iOSXML
- 光棍節專題:python程式設計師如何找女朋友Python程式設計師
- 巨量引擎:今日頭條人群洞察報告
- 今日頭條的小遊戲戰術遊戲
- React實戰篇(React仿今日頭條)React
- 記一次今日頭條面試面試
- 用Python爬下今日頭條所有美女,美滋滋!Python
- 半年工作經驗今日頭條和美團面試題面經分享面試題
- 大力出奇跡:今日頭條小程式躋身代理創業新沃土創業
- 如何在程式設計師這條路上一去不回頭程式設計師
- android 今日頭條的螢幕適配理解Android
- 【今日頭條】高薪誠聘 架構 / 後端高薪架構後端
- [北京]今日頭條招聘Golang開發工程師Golang工程師
- RSS推送技術——打造自己的今日頭條