给定一个数组序列, 需要求选出一个区间, 使得该区间是所有区间中经过如下计算的值最大的一个:

区间中的最小数 * 区间所有数的和最后程序输出经过计算后的最大值即可,不需要输出具体的区间。如给定序列  [6 2 1]则根据上述公式, 可得到所有可以选定各个区间的计算值:

[6] = 6 * 6 = 36;   注意:区间顺序不能变,不可排序

[2] = 2 * 2 = 4;

[1] = 1 * 1 = 1;

[6,2] = 2 * 8 = 16;

[2,1] = 1 * 3 = 3;

[6, 2, 1] = 1 * 9 = 9;

从上述计算可见选定区间 [6] ,计算值为 36, 则程序输出为 36。

区间内的所有数字都在[0, 100]的范围内;

输入描述:
第一行输入数组序列长度n,第二行输入数组序列。
对于 50%的数据,  1 <= n <= 10000;
对于 100%的数据, 1 <= n <= 500000;
输出描述:
输出数组经过计算后的最大值。
输入例子1:
3
6 2 1
输出例子1:
36
import java.util.Scanner;
import java.util.Arrays;
public class Main{public static void main(String[] args){Scanner in = new Scanner(System.in);int n = in.nextInt();int[] a = new int[n];int sum=0;int max=0;for ( int i = 0; i < n; i++ ){a[i]=in.nextInt();}for(int i=0;i<n;i++){//以某元素为最小值扩展到附近区间,使得主顺序遍历一遍就可以sum=0;int f=i;int e=i;if(i>0){for (int k=i-1;k>=0;k--){if(a[k]<a[i]){f=k+1;break;}f=0;//扩展到左边 不要忘记如果左边都大于基值 将起始位置置0} }if(i<n-1){for(int j=i+1;j<n;j++){if(a[j]<a[i]){e=j;break; //出现第一个小于基值 则退出}e=n;            }}for(int b=f;b<e;b++){sum += a[b];}max=Math.max(max,a[i]*sum);}System.out.println(max);}
}

今日头条18校招第一批算法笔试相关推荐

  1. 今日头条2018校招大数据/算法方向(第一批)详解

    问答题 1.给定一棵树的根节点, 在已知该树最大深度的情况下, 求节点数最多的那一层并返回具体的层数. 如果最后答案有多层, 输出最浅的那一层,树的深度不会超过100000.实现代码如下,请指出代码中 ...

  2. 今日头条18校招算法笔试

    P为给定的二维平面整数点集.定义 P 中某点x,如果x满足 P 中任意点都不在 x 的右上方区域内(横纵坐标都大于x),则称其为"最大的".求出所有"最大的"点 ...

  3. 今日头条2018校招测试开发方向(第一、二、三、四批)编程题汇总 - 题解

    对于今日头条这家公司来说,测试的题和后端开发的题几乎是一样的,但是由于第一批的后端开发的题没有在牛客网上放出来,因此,猜测后端开发第一批的题应该和后端开发第一批的题一样,同时也想做一个测试方向编程题的 ...

  4. 今日头条2018校招后端方向(第二批)

    1.为了不断优化推荐效果,今日头条每天要存储和处理海量数据.假设有这样一种场景:我们对用户按照它们的注册时间先后来标号,对于一类文章,每个用户都有不同的喜好值,我们会想知道某一段时间内注册的用户(标号 ...

  5. 今日头条、抖音推荐算法原理全文详解

    之前头条召开了一场分享交流会.资深算法架构师.中国科学技术大学计算机博士曹欢欢,在今日头条总部带来了题为<让算法公开透明>的分享,消除社会各界对算法的一些误解,同时接受意见和建议. 本次分 ...

  6. 今日头条2018校招后端方向(用户喜好)c++

    题目描述: 为了不断优化推荐效果,今日头条每天要存储和处理海量数据.假设有这样一种场景:我们对用户按照它们的注册时间先后来标号,对于一类文章,每个用户都有不同的喜好值,我们会想知道某一段时间内注册的用 ...

  7. 今日头条2018校招测试开发方向(第一批)详解

    ##问答题 #####1.给定一棵树的根节点, 在已知该树最大深度的情况下, 求节点数最多的那一层并返回具体的层数. ######如果最后答案有多层, 输出最浅的那一层,树的深度不会超过100000. ...

  8. VIVO校招提前批算法工程师笔试题目 2019/6/4

    总共有三道题: 很简单的一道题,给A,B两个数组,输出出现在A中而没有出现在B中的元素,输出元素前后顺序不变,遍历一遍就OK了. 反转链表的第M个至第N个元素 0-1 背包 第一题 第一题很简单,直接 ...

  9. 题解-今日头条2018校招后端方向(第二批)

    原题链接 链接:https://www.nowcoder.net/questionTerminal/429c2c5a984540d5ab7b6fa6f0aaa8b5 作为一个手串艺人,有金主向你订购了 ...

最新文章

  1. php更新数据库时间戳,关于Thinkphp5 里面数据库自动更新与创建时间的问题
  2. SpringBoot | 第九章:Mybatis-plus的集成和使用
  3. Python入门100题 | 第075题
  4. 【Android 修炼手册】Gradle 篇 -- Android Gradle Plugin 主要流程分析
  5. android7.0uri,整理: 解决Android7.0以上文件报FileUriExposedException问题
  6. 华为P30/P30 Pro细节再曝光:3.5mm耳机插孔和红外遥控各占其一
  7. VB判断指定名字的进程是否存在函数
  8. [RMAN]表空间的恢复
  9. Wannafly挑战赛27: E. 黄魔法师(构造)
  10. AudioUnitRender -10876
  11. elementUI中table中自定义修改时间格式2020-10-26T10:00:00
  12. 粤港澳湾区邮轮产业崛起 构建邮轮母港群尚需加强合作
  13. 千牛取消机器人自动回复_拼多多回复率低怎么办?
  14. 数字IC设计工程师笔试面试经典题
  15. mysql中的rman备份与恢复_RMAN备份与恢复总汇
  16. app接口开发整理(1)
  17. 安装python第三方模块包时,报错 error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C
  18. java order()_Java Comparator naturalOrder()用法及代码示例
  19. AireOS WLC配置AP Group
  20. UTF-8、en_US.UTF-8和zh_CN.UTF-8的区别

热门文章

  1. 如何在Ubuntu 20.04上安装和使用TimescaleDB
  2. 思科设备密码破解方法
  3. 项目:私“图”定制——利用ffmpeg制作Gif
  4. 单片机加减法计算器_课程设计--十进制加减法计算器单片机设计.doc
  5. Python - GPA的计算
  6. C#中判断空字符串的3种方法性能分析 1
  7. 计算机为什么老是重启,电脑总是已计划自动重启怎么办 已计划自动重启怎么关闭...
  8. Python自定义豆瓣电影种类,排行,点评的爬取与存储(高阶上)
  9. 计算机英语boot,电脑开不了机显示英文boottmgr
  10. 服务器未能保存文件夹,Exchange服务器提示 Event ID 50 Ntfs (Ntfs) {延迟写入失败} Windows 无法保存文件...