Advertisement

LeetCode——1793. 好子数组的最大分数(Maximum Score of a Good Subarray)[困难]——分析和代码(Java)

阅读量:

LeetCode 1793题分析与Java实现

  • 一、标题
    • 二、解析与实现代码

      • 1. 单调栈结合双指针方法
        • (1)核心思想
        • (2)程序代码
        • (3)实验结果
    • 三、相关补充内容

一、题目

给定一个整数序列 nums(索引从 0 开始)以及一个整数 k。对于一个子数组 (i, j),其对应的分数被定义为该子数组中所有元素的最小值乘以子数组的长度,即 min(nums[i], nums[i+1], …, nums[j]) * (j - i + 1)。所谓“好”子数组,指的是其起始和结束位置满足 i <= k <= j 的条件。请计算所有符合条件的“好”子数组中所能获得的最大分数值。

示例 1:

复制代码
    输入:nums = [1,4,3,7,4,5], k = 3
    输出:15
    解释:最优子数组的左右端点下标是 (1, 5) ,分数为 min(4,3,7,4,5) * (5-1+1) = 3 * 5 = 15 。
    
    
      
      
      
    
复制代码
    输入:nums = [5,5,4,5,4,1,1,1], k = 0
    输出:20
    解释:最优子数组的左右端点下标是 (0, 4)

全部评论 (0)

还没有任何评论哟~