求数组中区间中最小数*区间所有数和的最大值
来源:互联网 发布:一知f君2月13号 编辑:程序博客网 时间:2024/06/05 15:09
给定一个数组序列,使得区间经过如下计算的值是所有区间中最大的:区间中的最小数*区间所有数的和
如[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; }}
阅读全文
0 0
- 求数组中区间中最小数*区间所有数和的最大值
- 求数组中区间中最小数*区间所有数和的最大值
- hdu 3333 求区间中不同的数的和
- 数组中求一组数的最大值
- 求数组中数对的最大值
- 求区间中1的个数最多的数 若有多个输出最小的
- acm-1003 求一个数组中连续区间和的最大值问题
- 区间中最大的数
- 区间中最大的数
- 【HDU 3333】【离线询问 树状数组 前驱思想】Turing Tree【 求区间中不同的数的和】
- 求m个区间中第k小的数
- 求数组中连续三个数和得最大值
- 求一个数组中序列连续数的最大值
- 求数组中数的最大值、最小值(C语言)
- 数组中最长的区间,满足该区间内的数排序后是连续的。
- 数组中最长的区间,满足该区间内的数排序后是连续的。
- 题目:区间最小数
- 区间最小数
- DP7456是一款可以完美替代MAX7456的字符叠加芯片
- 现实中的规则引擎
- quartz设置misfire策略
- stl内存池剖析空间配置器
- 最基础的-----基于maven进行的SSM框架的整合的全部配置文件.
- 求数组中区间中最小数*区间所有数和的最大值
- 55. Jump Game(dp, 贪心)
- Xcode中的Version和Build的区别
- 运用Python实现多种排序的方法
- Firefox下载文件时中文名乱码问题
- MySQL基本练习
- SDK相关问题
- 研究生入门
- Android Wifi 信息保存与忘记