在Python中查找一个列表的最大第k个索引值的程序

假设我们有三个值 n、total 和 k。现在考虑一个大小为 n 的列表,其总和与 total 相同,并且任何两个连续元素之间的绝对差最多为 1。我们必须在这样的列表的索引 k 处找到最大值。

因此,如果输入类似于 n = 5 total = 15 k = 3,那么输出将为 4,因为一个可能的列表类似于 [3,2,3,4,3],在索引 3 处找到的最大元素是 4。

示例

让我们看看以下实现以获得更好的理解 -

def solve(n, total, k):

   x = 0

   while 1:

      a = k + 1

      s = (x + x - a + 1) * a // 2

      a = n - k

      s += (x + x - a + 1) * a // 2

      s -= x

      if s > total:

         break

      x += 1

   return x - 1

n = 5

total = 15

k = 3

print(solve(n, total, k))

输入

5, 15, 3
输出结果
4

以上是 在Python中查找一个列表的最大第k个索引值的程序 的全部内容, 来源链接: utcz.com/z/322619.html

回到顶部