程序查找子列表的大小,其中在Python中最小A和A的乘积最大

假设我们有一个数字列表,称为nums和另一个值pos。我们必须找到一个包含索引pos的num子列表A,以使(A的最小值)*(A的大小)最大化,然后返回该值。

因此,如果输入类似于nums = [-2、2、5、4] pos = 3,则输出将为8,因为最佳子列表为[5,4],因为(5,4)= 4并且它的大小是2,我们有4 * 2 = 8。

示例

让我们看下面的实现以更好地理解-

class Solution:

   def solve(self, A, pos):

      NINF = float("-inf")

      ans = m = A[pos]

      i = pos

      j = pos

      for _ in range(len(A) - 1):

         left = A[i - 1] if i - 1 >= 0 else NINF

         right = A[j + 1] if j + 1 < len(A) else NINF

         if left >= right:

            i -= 1

            m = min(m, A[i])

         else:

            j += 1

            m = min(m, A[j])

         ans = max(ans, m * (j - i + 1))

      return ans

ob = Solution()

nums = [-2, 2, 5, 4]

pos = 3

print(ob.solve(nums, pos))

输入值

[-2, 2, 5, 4], 3
输出结果
8

以上是 程序查找子列表的大小,其中在Python中最小A和A的乘积最大 的全部内容, 来源链接: utcz.com/z/315926.html

回到顶部