求数组中区间中最小数*区间所有数和的最大值

简介: 给定一个数组序列,使得区间经过如下计算的值是所有区间中最大的:区间中的最小数*区间所有数的和如[6,2,1],则求出区间为[6] 输入: 3 6 2 1输出: 36大体思路: 给定一个数组序列, 使得...

给定一个数组序列,使得区间经过如下计算的值是所有区间中最大的:区间中的最小数*区间所有数的和

如[6,2,1],则求出区间为[6]
输入:
3
6 2 1

输出:
36

大体思路:
给定一个数组序列,
使得区间经过如下计算的值是所有区间中最大的:
区间中的最小数*区间所有数的和
如[6,2,1],则求出区间为[6]
输入:
3
6 2 1
输出:
36

大体思路: 把每个数字看成最小值,
因为所有数大于0,符合条件的区间越大值越高
扫左扫右,得到边界(第一个小于arr[i]的)

最后依次判断得到答案

public class test {
    public static int function(int[] arr) {
        int len = arr.length;
        int[] sum = new int[len];
        int ans = 0;
        for (int i = 0; i < len; i++) {
            //右边界
            sum[i] = arr[i];
            for (int j = i+1; j < len; j++) {
                if (arr[j] >= arr[i]) {
                    sum[i] += arr[j];
                } else {
                    break;
                }
            }
            //左边界
            for (int j = i-1; j >= 0;j--) {
                if (arr[j] >= arr[i]) {
                    sum[i] += arr[j];
                } else {
                    break;
                }
            }
            ans = Math.max(ans,sum[i]*arr[i]);
        }
        return ans;
    }
}
目录
相关文章
|
自然语言处理 监控 算法
|
9月前
|
存储 机器学习/深度学习 数据挖掘
数据湖与数据仓库:初学者的指南
数据湖与数据仓库:初学者的指南
695 4
|
JavaScript 前端开发 数据安全/隐私保护
vue element plus Form 表单
vue element plus Form 表单
696 0
|
资源调度 分布式计算 Hadoop
YARN(Hadoop操作系统)的架构
本文详细解释了YARN(Hadoop操作系统)的架构,包括其主要组件如ResourceManager、NodeManager和ApplicationMaster的作用以及它们如何协同工作来管理Hadoop集群中的资源和调度作业。
695 3
YARN(Hadoop操作系统)的架构
|
存储 缓存 API
Vulkan 围炉夜话4
Vulkan 围炉夜话
244 5
|
资源调度 分布式计算 监控
YARN的基本架构
【6月更文挑战第19天】YARN的基本架构
392 10
|
SQL 安全 算法
BugKu CTF(Crypto):MaybeEasyRSA & easy_crypto & 黄道十二宫 & 给你私钥吧
BugKu CTF(Crypto):MaybeEasyRSA & easy_crypto & 黄道十二宫 & 给你私钥吧
|
消息中间件 存储 数据管理
【Kafka】zookeeper对于kafka的作用是什么?
【4月更文挑战第6天】【Kafka】zookeeper对于kafka的作用是什么?
|
分布式计算 数据可视化 Hadoop
大数据实战——基于Hadoop的Mapreduce编程实践案例的设计与实现
大数据实战——基于Hadoop的Mapreduce编程实践案例的设计与实现
3659 0