美团笔试-回转寿司

2023-10-31

小美请小团吃回转寿司。转盘上有N盘寿司围成一圈,第1盘与第2盘相邻,第2盘与第3盘相邻,…,第N-1盘与第N盘相邻,第N盘与第1盘相邻。小团认为第i盘寿司的美味值为A[i](可能是负值,如果小团讨厌这盘寿司)。现在,小团要在转盘上选出连续的若干盘寿司,使得这些寿司的美味值之和最大(允许不选任何寿司,此时美味值总和为0)。

输入:

第一行输入一个整数T(1<=T<=10),表示数据组数。
每组数据占两行,第一行输入一个整数N(1<=N<=10^5);
第二行输入N个由空格隔开的整数,表示A[1]到A[N](-104<=A[i]<=104)。

输出:

每组数据输出占一行,输出一个整数,表示连续若干盘寿司的美味值之和的最大值

输入例子

1
4
3 -2 4 -1

输出例子

6

第一思路是用两层循环,但是超时, python不会。
第二思路如下: 可能的组合是:前缀和-前缀和最小值(0或者负数); 前缀和+以最后一个数字结尾的最大和子数组。

#include<iostream>
#include<vector>
using namespace std;
int main(){
    int T;
    cin>>T;
    while(T--){
        int n;
        cin>>n;
        vector<int>num;
        for(int i = 0; i <n; i++){
            int a;
            cin>>a;
            num.push_back(a);
        }
        vector<int>pre(n+1, 0);
        vector<int>pre_min(n+1,0);
        vector<int>suf_max(n+1, 0);
        vector<int>suf(n+1,0);
        int mins = 0, maxs = 0, res = 0;
        for(int i = 0; i < n; i++){
            pre[i+1] = pre[i] + num[i];
            mins = min(mins, pre[i+1]);
            pre_min[i+1] = mins;
        }
        for(int i = n-1; i >= 0; i--){
            suf[i] = suf[i+1] + num[i];
            maxs = max(maxs, suf[i]);
            suf_max[i] = maxs;
        }
        for(int i = 0; i < n; i++){
            res = max(res, max(pre[i+1] - pre_min[i+1], pre[i+1] + suf_max[i+1]));
        }
        cout<<res<<endl;
    }
    return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

美团笔试-回转寿司 的相关文章

  • UE4基础学习笔记——— 材质编辑器04

    材质实例 原理 不用在原父级材质编辑器中去调节材质 我们把重要的调节值设置为 转换为参数 将材质实例化 要修改只要修改参数即可 选择父级材质右键 创建材质实例 注意标识颜色是 深绿 在实例编辑界面中 出现了之前设置的可变参数 材质实例化方便
  • 《Java Web程序设计——开发环境的搭建》

    Java Web程序设计 开发环境的搭建 一 前言 这里主要分享一下我搭建开发环境的过程以及遇到的问题 其中涉及到的软件都可以从官网获取 若官方访问过慢也可到镜像网站或者下面分享的网盘链接中下载 软件安装路径尽量不要有中文 否则可能会报错

随机推荐

  • 试题 算法训练 拿金币-蓝桥杯

    这里的关键字仍然是动态规划 动态规划核心 拆分子 记住过往 减少重复计算 计算结果 1 不难发现 对于某个确定的路径上的特定位置上的金币总数 总是由该位置的上方的值或左边的值确定的 所以遍历数组位置的上方和左边的 再 比较 递加 就能计算出
  • K8S之资源管理

    文章目录 一 K8S中的资源 二 YAML语言 三 资源管理方式 一 命令式对象管理 二 命令式对象配置 三 声明式对象配置 一 K8S中的资源 在kuberbnetes中 所有的内容都抽象为资源 用户需要通过操作资源来管理kubernet
  • 可视化埋点方案和实践-PC-WEB端(一)

    目录 一 什么是可视化埋点 1 圈选 点选 即标记页面元素 的逻辑代码 2 捕获监听标记的元素的逻辑代码 二 遇到的坑 1 标记元素兼容性难 2 监听难 三 优点 1 方便了测试人员和运营人员 2 埋点的变更是即时的 不需要更新系统代码 3
  • 【Graph Neural Network】 GraphSAGE 基本原理与tensorflow2.0实现

    文章目录 GraphSAGE 前向传播算法 采样算法 聚合 aggragator 操作 参数学习 基于tensorflow2 0实现Graph SAGE GCN是一种利用图结构和邻居顶点属性信息学习顶点Embedding表示的方法 GCN是
  • 如何有效预防脱库

    本篇不从DBA 网络架构层面来讲述数据安全 这部分有很专业的架构和云上产品来解决 本篇重点从开发人员角度讲述如何避免数据安全的漏洞 相信大部分人都看到过这样的新闻 某某论坛泄漏了用户密码 某某物流公司泄漏了用户的手机号等等 我一直坚信大部分
  • 用Unity3D和VuforiaSDK简单做AR应用(入门)

    最近刚开始接触AR技术 结合u3d 算是对增强现实应用入个门 网上的例子不胜枚举 但有些浅尝辄止 根据自己几天来的摸索 毕竟新的技术源自国外 翻起晦涩的外文 一步一个脚印终于爬了出来 先上个史记效果图先 我取名之 鹿君下山 接下来说说步骤
  • Linux分区记录

    命令 cat proc mtd dev size erasesize name mtd0 00007000 00010000 vendor mtd1 00030000 00010000 IDBlock mtd2 00600000 00010
  • 3.5设计模式——————接口隔离原则——面向对象设计原则

    接口隔离原则的定义 接口隔离原则 Interface Segregation Principle ISP 要求程序员尽量将臃肿庞大的接口拆分成更小的和更具体的接口 让接口中只包含客户感兴趣的方法 2002 年罗伯特 C 马丁给 接口隔离原则
  • php新闻管理系统(简单)学习教程

    最近因为工作原因需要使用php开发网页 所以开始学习php 在学习的过程中也遇到了很多困难 经过不断的查询百度各种学习资料 逐步的客服了这些困难和疑惑 现在我将学习过程中编写的代码分享给有需要的朋友 仅供参考 此系统比较简单 共有20个ph
  • 某宝登录滑块拖动没反应解决,亲测有效

    这两天在抓取某宝数据的时候发现使用selenium登录时会有滑块 然后尝试使用xpath定位到滑块位置然后使用Actionchains拖动 但是发现滑块拖动没有反应 但是在抓取过程中的滑块拖动时没有问题的 如图所示 随后对代码进行调试 终于
  • 微信小程序开店怎么做?

    在日活量如此之高的微信里 很多商家都希望能再微信开一个小程序商店 来提高自己的一个卖货收益 那么微信小程序开店怎么做呢 下面跟大家分享一下微信小程序怎么开店 一 开通小程序账号 首先我们需要开通一个小程序账号 小程序账号的主体类型要企业或者
  • 学习一年Java的程序员的C++学习记录(指针引用绕晕记)

    文章目录 一 C 入门 二 变量和数据类型 三 运算符 四 流程控制 五 复合数据类型 六 函数 七 函数高阶 八 面向对象 一 C 入门 标准输出流中 cout 是一个ostream对象 lt lt 和 gt gt 是C 中经过重载的运算
  • 从谷歌宕机事件认识互联网工作原理

    摘要 谷歌服务器经历了短暂的宕机事件 持续大概27分钟 对部分地区的互联网用户造成了影响 此次事件的原因深究起来需要进入互联网络那深邃的 黑暗的角落 译者注 本文中提到CloudFlare是一家总部位于美国旧金山的内容分发网络 CDN 服务
  • 必备歌曲--超经典

    一些超经典的歌曲 看看你听过多少 1 陈慧琳 记事本 爱得痛了 痛的哭了 记载着我们过去的点点滴滴 让我们一起回忆 2 王力宏 唯一 悠扬 流畅 很有韵味的感觉 大声对你深爱的人说你是我的唯一王力宏新专辑首支主打歌 唯一 打动不少歌迷 觉得
  • 华为OD机试 - 跳房子I(Java)

    题目描述 跳房子 也叫跳飞机 是一种世界性的儿童游戏 游戏参与者需要分多个回合按顺序跳到第1格直到房子的最后一格 跳房子的过程中 可以向前跳 也可以向后跳 假设房子的总格数是count 小红每回合可能连续跳的步教都放在数组steps中 请问
  • shell 脚本中wait命令以及多进程库wait()原语的使用

    一 脚本源码 compute it 1 gt compute it 1 out compute it 2 gt compute it 2 out wait cat compute it 1 out cat compute it 2 out
  • 解决Spyder无法自动补全某些代码的问题

    今天在Spyder发现按tab代码无法自动补全 网上的方法全部试过了 如在ipython里面勾选greedy completion 和autocall选full 删除enum34 我根本就没有这个包 安装rope 安装正确版本的jedi和p
  • JAVA this关键字的使用(JacKing)

    1 对当前对象的引用 public class Leaf int i 0 Leaf increment i return this void print System out println i i public static void m
  • Unity3d trial version 水印

    使用个人免费版发布安卓手机版包 屏幕右下角显示 trial version 水印 解决办法 1 免费版Unity Hub 使用国外网络刷新证书 2 使用付费版Unity Hub
  • 美团笔试-回转寿司

    小美请小团吃回转寿司 转盘上有N盘寿司围成一圈 第1盘与第2盘相邻 第2盘与第3盘相邻 第N 1盘与第N盘相邻 第N盘与第1盘相邻 小团认为第i盘寿司的美味值为A i 可能是负值 如果小团讨厌这盘寿司 现在 小团要在转盘上选出连续的若干盘寿