在Python中查找产品最小数量和A大小的子列表的程序

在Python中查找产品最小数量和A大小的子列表的程序

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

因此,如果输入如下nums = [-2, 2, 5, 4] pos = 3,则输出将为8,因为最佳子列表为[5,4],因为(5,4)= 4,其大小为2,我们有4 * 2 = 8。

为解决此问题,我们将采取以下步骤:

  • ans:= A [pos],m:= A [pos]

  • i:= pos,j:= pos

  • 对于i在0到A大小-1的范围内,执行以下操作

    • left:=如果i-1≥0,则A [i-1]否则-inf

    • right:=如果j + 1

    • 如果left> = right,则

      • i:= i-1

      • m:= m和A [i]中的最小值

    • 否则,

      • j:= j + 1

      • m:= m和A [j]中的最小值

    • ans:= ans和(m *(j-i +1))的最大值

  • 返回ans

示例

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

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 =如果i-1≥0则A [i-1]否则NINF
         right =如果j + 1  = right:
            i-= 1
            m = min(m,A [i])
         否则:
            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教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程