【发布时间】:2022-01-04 13:48:00
【问题描述】:
我们得到一个大小为N * N 的网格,其中每个元素A[i][j] 都是通过这个公式(i + j) ^ 2 + (j-i) * 10^5 计算出来的。
我们需要以优化的方式找到第K个最小元素。
约束:
1 <= number of test cases <= 20
1 <= N <= 5*10^4
1 <= k <= N^2
如何有效地解决这个问题?
【问题讨论】:
-
你试过什么?这也是java还是C++?它们是非常不同的语言。
-
我尝试了蛮力,但时间太长了。就像找到网格中的每个元素一样,对其进行排序并选择第 K 个元素 @ShadowMitia
-
向我们展示代码,我们可以从那里开始提供帮助。
标签: java c++ algorithm math data-structures