iOS算法--美团 旋转寿司

美团笔试-回转寿司 小美请小团吃回转寿司。转盘上有N盘寿司围成一圈,第1盘与第2盘相邻,第2盘与第3盘相邻,…,第N-1盘与第N盘相邻,第N盘与第1盘相邻。小团认为第i盘寿司的美味值为A[i](可能是负值,如果小团讨厌这盘寿司)。现在,小团要在转盘上选出连续的若干盘寿司,使得这些寿司的美味值之和最大(允许不选任何寿司,此时美味值总和为0)。 输入: 第一行输入一个整数T(1<=T<=10),表示数据组数。 每组数据占两行,第一行输入一个整数N(1<=N<=10^5); 第二行输入N个由空格隔开的整数, 阅读详情

题目

小美请小团吃回转寿司。转盘上有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
输入

1
4
3 -2 4 -1

输出

6

说明

美味值之和最大连续若干盘寿司为第3盘、第4盘和第1盘。

题解

本来以为是求数组的是最大和, 可以考虑动态规划, 但是看到需要收尾相接, 那么基础还是求最大和, 只是需要处理环的链接部分.
环的部分难点在于, 单向计算数组的最大和的回头问题, 最开始想的是, 原有数组基础上后面追加一遍数组元素, 营造一个假的环, 但是, 还要处理最大连续的个数, 感觉绕进了一个死胡同.

于是乎这里有一个巧妙地思路:

最大连续和 + 最小连续和 = 总数和
上述两个和是互斥的而且紧密相连

所以,

  • 如果最大连续和是跨环节点的, 那么就用 `总数 - 最小连续
  • 如果最大连续和不是跨节点, 那么取求出的最大连续

代码

代码只是核心部分, 题目中提到的组数, 这里只是一组的代码, 多组可以添加上wihle循环.

func maxSum(_ array: Array<Int>?) -> Int {
    guard let data = array else {
        return 0
    }
    
    var dpMax: Int = data[0]
    var _max : Int = data[0]
    var dpMin: Int = data[0]
    var _min: Int = data[0]
    var sum: Int = data[0]
    
    for index in 1..<data.count {
        let cur = data[index]
        
        sum += cur
        
        dpMax = max(dpMax + cur, cur)
        _max = max(_max, dpMax)
        
        dpMin = min(dpMin + cur, cur)
        _min = min(_min, dpMin)
    }
    
    print(sum, _max, _min)
    
    return max(sum - _min, _max)
}

无奈

牛客上的笔试部分的输入, 一直不知道该怎么办, 有大佬知道该怎么做吗???

美团2021笔试题(第十场)-公司食堂 美团2021笔试题(第十场)-公司食堂 题目 小美和小团所在公司的食堂有N张餐桌,从左到右摆成一排,每张餐桌有2张餐椅供至多2人用餐,公司职员排队进入食堂用餐。小美发现职员用餐的一个规律并告诉小团:当男职员进入食堂时,他会优先选择已经坐有1人的餐桌用餐,只有当每张餐桌要么空着要么坐满2人时,他才会考虑空着的餐桌; 当女职员进入食堂时,她会优先选择未坐人的餐桌用餐,只有当每张餐桌都坐有至少1人时,她才会考虑已经坐有1人的餐桌; 无论男女,当有多张餐桌供职员选择时,他会选择最靠左的餐桌用餐。现在食堂内已有若干 阅读详情

相关推荐

转盘寿司(100%用例)C卷 (Java&&Python&&C++&&Node.js&&C语言)

寿司店周年庆,正在举办优惠活动回馈新老客户。寿司转盘上总共有n盘寿司,prices[i]是第i盘寿司的价格,如果客户选择了第i盘寿司,寿司店免费赠送客户距离,第i盘寿司最近的下一盘寿司i,前提是prices[j]< prices[i],如果没有满足条件的j,则不赠送寿司。每个价格的寿司都可无限供应。

荆赫同艺的博客 893

转盘寿司---循环的转盘

如果客户选择了第 i 盘寿司,寿司店免费赠送客户距离第 i 盘寿司最近的下一盘寿司 j,前提是 prices[j] < prices[i],如果没有满足条件的 j,则不赠送寿司。输出享受优惠后的一组数据,每个值表示客户选择第 i 盘寿司时实际得到的寿司的总价格。寿司转盘上总共有 n 盘寿司,prices[i] 是第 i 盘寿司的价格,每盘寿司的价格 price 范围为:1 ≤ price ≤ 1000。第 1 盘寿司价格 prices[1] 为 15。第 3 盘寿司价格 prices[3] 为 14。

ALAN_CF的博客 528

美团网2015笔试题

美团网2015笔试题,昨晚刚参加完考试,我就把好资源贡献给我大家,大家可以自己做一下,测试自己的能力。

OD C卷 - 转盘寿司

单调栈;

weixin_45228198的博客 585

瑞萨RZN2L工业以太网开发避坑指南:EtherCAT从入门到通信调试全流程

本文详细解析了瑞萨RZN2L MPU在工业以太网开发中的EtherCAT从站配置与通信优化全流程。通过硬件设计关键点、协议栈选型、PDO映射策略及DC同步精度优化等实战技巧,帮助开发者快速搭建高效通信框架并解决调试中的常见问题,特别适合工业自动化领域的实时通信需求。

aitie1479的博客 461

如何用 Python 实现自动化测试?详细步骤和代码示例

Python自动化测试实战指南 本文系统介绍了使用Python构建自动化测试体系的完整方案。主要内容包括: 环境搭建:Python 3.8+虚拟环境配置,安装pytest、Selenium等核心测试库 分层测试实现: 单元测试:通过计算器示例演示pytest断言和异常测试 API测试:使用requests库进行RESTful接口验证 UI测试:Selenium WebDriver实现网页交互测试 高级特性: 使用fixture管理测试依赖 参数化实现数据驱动测试 生成HTML和Allure测试报告 GitH

m0_64424835的博客 449

寿司转盘,用 C 编码

寿司店周年庆,正在举办优惠活动回馈新老客户寿司转盘上总共有 n 盘寿司,prices[i] 是第 i 盘寿司的价格,如果客户选择了第 i 盘寿司,寿司店免费赠送客户距离第 i 盘寿司最近的下一盘寿司 j,前提是 prices[j]

南京大学软件工程硕士在读 1371

禾赛XT16 vs XT32激光雷达实测对比:选16线还是32线?看完这篇不纠结

本文深度评测禾赛XT16与XT32激光雷达的性能差异与应用选择。通过实测数据对比,分析16线与32线激光雷达在点云密度、动态场景适应性及与IMU协同工作等方面的表现,帮助用户根据自动驾驶、机器人等不同应用场景做出最优选型决策。

table的专栏 944

java面试寿司常见排序算法

【代码】java面试寿司常见排序算法。

weixin_48773854的博客 262

ROS2仿真抓取分拣案例,使用myCobot 280机械臂结合ROS2系统搭建机械分拣站

本案例展示了如何利用myCobot 280 urdf模型构建一个对象分类站,并在ROS2 jazzy中完成运动规划。

m0_71627844的博客 2125

无线Mesh组网全攻略:从原理、部署到调优与排障

对于布线困难的大户型、复式楼或园区,传统的无线中继往往面临带宽减半和链路不稳定的问题。无线Mesh网络通过多跳转发与自组织路由,让每个节点无需网线即可协作扩展覆盖,并依靠动态路径选择实现自愈。其核心技术涉及802.11s、HWMP路由协议,以及802.11k/v/r协同的无缝漫游,能有效提升终端切换体验。在实际部署中,设备选型、回程频段规划与布点位置直接决定网络质量。围绕无线Mesh的组网原理、设备选型、配置调优与故障排查,提供一套工程实践参考,帮助用户在复杂环境下构建稳定高效的无缝覆盖。

weixin_34098209的博客 270

2021美团笔试题(第十套)个人解答

1、淘汰分数 //暴力解法 import java.util.Arrays; import java.util.Scanner; /* * 先排序,从最小值开始遍历,判断两者人数是否符合人数区间 * 注意:考虑存在多个分数线时,要输出最低的,所以要排序 * */ public class EliminateScores { public static int findEliminateScores(int min, int max, int[] scores) { if (min

flyersboy的博客 4044

利用 HTML5 与 SICF 打造 CRM WebClient UI 多附件上传 —— 从原型到生产的全流程揭秘

通过HTML5 标准 + SICF 服务 + BOL/GOS API的三位一体方案,我们无需修改 SAP 标准代码,就能让 CRM WebClient UI 获得现代化的多附件上传体验。浏览器负责多选与进度提示,SICF 负责安全中转,ABAP 负责权限校验与落库。你可以先在质量系统快速原型,再逐步完善权限、异常处理与 UI 细节。按照本文的方法落地,哪怕一次上传几百份文件,也能轻松搞定,真正把时间还给业务。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 333

【编程笔试】美团2021校招笔试-通用编程题第9场(附思路及C++代码)

导览练习地址糕点晋级人数回转寿司神秘的苹果树总结 练习地址 点此前往练习 糕点 小团的蛋糕铺长期霸占着美团APP中“蛋糕奶茶”栏目的首位,因此总会吸引各路食客前来探店。 小团一天最多可以烤n个蛋糕,每个蛋糕有一个正整数的重量。 早上,糕点铺已经做好了m个蛋糕。 现在,有一个顾客要来买两个蛋糕,他希望买这一天糕点铺烤好的最重的和最轻的蛋糕,并且希望这两个蛋糕的重量恰好为a和b。剩余的n-m个蛋糕可以现烤,请问小团能否满足他的要求? 输入描述: 输入包含多组数据,每组数据两行。每组数据的第一行包含4个整数,n

Sig的博客 2386

Xilinx高级调试方法--远程调试

本文主要介绍Xilinx的一些高级调试方法,以及如何使用Xilinx的相关IP。

斌赋的博客 3308

Autosar CAN 网络管理测试用例(3)——Repeat Message Timer 时间测试

Autosar CAN 网络管理测试用例(3)——Repeat Message Timer 时间测试

蚂蚁小兵 2463

美团笔试题

三、回转寿司 题目描述: 小美请小团吃回转寿司。转盘上有N盘寿司围成一圈,第1盘与第2盘相邻,第2盘与第3盘相邻,…,第N-1盘与第N盘相邻,第N盘与第1盘相邻。小团认为第i盘寿司的美味值为A[i](可能是负值,如果小团讨厌这盘寿司)。现在,小团要在转盘上选出连续的若干盘寿司,使得这些寿司的美味值之和最大(允许不选任何寿司,此时美味值总和为0)。 输入描述 第一行输入一个整数T(1<=T<=10),表示数据组数。 每组数据占两行,第一行输入一个整数N(1<=N<=10^5);

小默学习笔记 2105

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

字节笔试 - 寿司最大价格 - 动态规划 - 数组不相邻数之和最大值

寿司题 - 数组不相邻数之和最大值 此题来自于朋友在字节的笔试, 同类题目可见leetcode 198题 House Robber. 给你一堆寿司 不能选相邻的盘子 然后要选出价格加起来最高的那些 print价格 举例 [9 1 4 3] 输出13 如果是[9 1 3 2 5] 输出17 从题目知道这题本质是给一组数组,求数组里不相邻元素的最大值和,也就是说,求最优解。 思路 最优解题目使用DP。 第一步是 **确定状态 **。 假设有10碟寿司,价格如下 寿司序列 [0] [1] [2] [

rickyoung0221的博客 451

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

[Noip模拟题]寿司

Description 小 c 是一名 oier。最近,他发现他的数据结构好像学傻了。因为他在刷题时碰到了一道傻逼数据结构题,强行使用了平衡树来解决,卡着时间 AC。为此,他被狠狠地嘲讽了一番。于是,小 c 找了大量的数据结构题来做。昨天,小 c 正在吃寿司,突然发现许多盘寿司围成了一个圆圈,这些寿司中有红色的也有蓝色的。由于小 c 看交错的颜色非常不爽,想通过一些操作,使得所有的红色寿司形成了一

Canopus 1677

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

寿司

大体意思是让字符串的两种字符串分开。首先,可想到处理环的问题,转换成2*n-1的序列问题。 手玩的几个性质:   1.最优的方案一定只有不同颜色的寿司交换   2.一个寿司的移动步数可以O(1)求   3.一定存在一个断点使得所有蓝色的移向两侧(假设动蓝色的)(和全都移向断点一样)   4.只考虑蓝色的和只考虑红色的效果一样 40%   我们为了确保所有的方案都能统计到,先...

weixin_30685029的博客 224

最小生成树一Prim算法

题目一堆废话,直接看输入输出:     输入     在一组测试数据中:     第1行为1个整数N,表示小Hi拥有的城市数量。     接下来的N行,为一个N*N的矩阵A,描述任意两座城市之间建造道路所需要的费用,其中第i行第j个数为Aij,表示第i座城市和第j座城市之间建造道路所需要的费用。  N&lt;=10^3     输出     对于每组测试数据,输出1个整数Ans,表示...

Z2Min_ 197

高精度相乘(大数乘大数)

原理:倒置相乘,然后统一处理进位,再还原 时间复杂度:O(n2) //C #include<stdio.h> #include<string.h> void mul(char a[],char b[]) { int i,j,la,lb,lc; int na[100]={0},nb[100]={0},nc[100]={0}; la = strlen(a); lb...

Z2Min_ 401

最小生成树二 Kruscal算法

还是直接看输入输出     输入     每个测试点(输入文件)有且仅有一组测试数据。     在一组测试数据中:     第1行为2个整数N、M,表示小Hi拥有的城市数量和小Hi筛选出路线的条数。     接下来的M行,每行描述一条路线,其中第i行为3个整数N1_i, N2_i, V_i,分别表示这条路线的两个端点和在这条路线上建造道路的费用。     对于100%的数据,满足N&l...

Z2Min_ 331

寿司 (拆环为链 大模拟)

思路: 模拟题,枚举向那个点靠拢。 显然只用考虑一种颜色 #include #include #include #include #define LL long long #define N 1000010 using namespace std; int len; char s[N]; int a[N], cnt, num; LL sum, pos, ans = (1LL 61)

w4149 425

bzoj 4627:[BeiJing2016]回转寿司

算法:裸树状数组/裸线段树  难度:(NOIP-) 设s[i]为前缀和,差分,把序列和转化为前缀相减,即选出满足L≤s[x]−s[y]≤R的x&gt;y的数个数。 那么我们枚举x,即可得到y的范围,二分找以前的满足条件的yy的个数(lowerbound&amp;&amp;upper_bound)。可以维护1到当前位置树状数组,在树状数组中查询个数,最后再将该数加入到树状数组中。但是数...

01232012的博客 356

回转寿司

题目描述分块你考虑有一堆人,价格为x的进去了出来会变成啥样。 那么肯定是找到这堆人所持价格的最大值y,如果x>y,出来的还是y,否则x会变成某个人手里的,然后出来的是y。 我们考虑分块,每个块维护一个数堆。 如果x要经过一个块,可以丢进数堆,再取出一个最大值。然后还要给这个块打上一个标记。 但是对于零散的不是很好做,即重构块,我们如何快速得到每个位置经过一系列标记后的值? 注意这个问题具有

不来也不去的一只失忆蝴蝶 761
上一篇: iOS开发--关闭系统黑夜模式的影响
下一篇: MacOS 11 解决打不开软件的问题
单细胞的逻辑
博客等级 码龄10年 19粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值