今日頭條程式設計題1 找 最大 點

2021-08-17 16:31:21 字數 970 閱讀 7200

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)

collections.sort(points, new comparator()

});int maxy = -1;

stackstack = new stack<>();

for (int i = points.size() - 1; i >= 0 ; i--)

}while (!stack.empty())

}

今日頭條程式設計題

第一題 p為給定的二維平面整數點集。定義 p 中某點x,如果x滿足 p 中任意點都不在 x 的右上方區域內 橫縱座標都大於x 則稱其為 最大的 求出所有 最大的 點的集合。所有點的橫座標和縱座標都不重複,座標軸範圍在 0,1e9 內 如下圖 實心點為滿足條件的點的集合。請實現 找到集合 p 中的所有...

今日頭條 最大對映

有 n 個字串,每個字串都是由 a j 的大寫字元構成。現在你將每個字元對映為乙個 0 9 的數字,不同字元對映為不同的數字。這樣每個字串就可以看做乙個整數,唯一的要求是這些整數必須是正整數且它們的字串不能有前導零。現在問你怎樣對映字元才能使得這些字串表示的整數之和最大?輸入描述 每組測試用例僅包含...

演算法題 2018今日頭條程式設計題二

使用dp i,j 表示區間 i,j 能得到計算值的最大值 k表示區間 i,j 的最小值min的下標索引 則序列結構可表示如下 i,k 1 min k 1,j i,j 所有子區間分為兩種情況 包含min 不包含min 在所有包含min的子區間 m,n 中,計算值 mi n su m m,n mi n ...