M 的 N 个数
先来道简单的题目:
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们组成的数组。...,然后通过迭代数组中的每个数对应的二进制,有几个 1 来确定选取元素的个数。...这里可以这样看:1110 中的左边第一个 1 对应着数组 [1, 2, 3, 4] 中的 1 。
现在有一个问题,该如何建立这个映射关系呢?...例如输入 4,5,1,6,2,7,3,8 这 8 个数字,则最大的 4 个数字是 8,7,6,5,。
比较简单的是将这些数字组合成一个数组,然后进行从大到小进行排序,取前 K 个即可。...之后将第 K + 1 个元素与堆顶对比,如果大于堆顶元素,则说明堆顶元素不是第 K 大的值,因此将堆顶元素替换为第 K + 1 个元素,并调整此最小堆,以此类推至数组的最后一个元素,则最后整个最小堆即为所求答案